Composer:PHP依赖管理利器及速查表详解
本文将深入探讨Composer——PHP项目依赖管理的基石,并重点介绍其高效的速查表。通过Packagist.org,Composer为开发者提供了访问数百个库的便捷途径。
关键要点:
composer.phar
命令行开关和composer.json
文件配置。它提供了全面的命令行选项和配置列表,并附带示例和详细说明。(本文由AppDynamics赞助。感谢您支持使SitePoint成为可能的赞助商!)
如今的PHP已今非昔比,它是一个更加优雅和成熟的语言,拥有无数改进和补充。Composer正是其中一个关键的补充,它是事实上的PHP项目依赖管理标准,默认情况下,它允许您通过Packagist.org访问数百个现成的库。
我不会赘述如何使用Composer,因为SitePoint上已经有许多优秀的文章对此进行了讲解(例如,亚历山大·科涅的这篇文章)。
相反,我将从不同的角度来探讨它,带您了解最近发现的优秀的Composer速查表。
如果您想快速浏览视频概述,请观看下面的嵌入式视频。否则,请继续阅读。我建议您两者都做。
Composer功能强大,您可以用它做很多事情。例如,您可以使用composer.phar
文件:
仅从这些示例中,您就可以看出Composer的功能非常强大,而且需要记住的东西也很多。
那么,尽管您在每个项目中都使用它,但您是否了解它提供的所有功能?或者您是否一次又一次地使用相同的命令行开关和配置选项,而没有考虑其他可用的选项?
如果您像我一样,我建议您属于后者。今天,我想帮助您纠正这一点,并通过速查表来充分利用Composer。
我相信您会明白为什么它如此名副其实;很快您就会像PHP手册一样把它放在一个固定标签中。它真的很好!
两个主要部分
它主要包含两个主要部分:
composer.phar
命令行开关composer.json
文件composer.phar
命令行开关
此部分列出了您可以通过命令行传递给composer.phar
的所有命令行开关。更重要的是,将鼠标悬停在右侧,您将看到每个开关的更详细说明。
它列出了从最常用、最常用的选项到更高级的选项。以下是示例:
install
– 在vendor
目录中设置依赖项self-update
– 将composer.phar
文件更新到最新版本init
– 在现有或新项目中设置Composer支持validate
– 验证现有的composer.json
文件diagnose
– 执行自动检查archive
– 创建Composer包的存档通过使用速查表,我了解到,通过将--optimize
开关传递给dump-autoload
,您可以获得项目高达20%的性能提升。
是不是很不错?好吧,我本可以通过测试或查阅文档来找出这一点,但是速查表使查找变得快速而容易。
composer.json
文件配置
我建议这是您在速查表中花费大部分时间的部分。虽然调用composer.phar
很大程度上可以被脚本化,但是您需要的每个项目的配置可能经常不同,每次都需要各种不同的选项。
因此,在这方面,composer.json
部分绝对是您的朋友。与composer.phar
一样,它显示了一个示例,使用了每个选项。它列出了所有选项,从最常见的选项(如名称、描述、作者和require
)提供有关包及其依赖项的关键信息开始。
authors
就是一个很好的例子,它显示了两个示例作者的名称、电子邮件、主页和角色,如下所示:
"authors": [ { "name": "Xavier Lacot", "email": "xlacot@jolicode.com", "homepage": "http://www.lacot.org", "role": "Developer" }, { "name": "Benjamin Clay", "email": "bclay@jolicode.com", "homepage": "http://ternel.net", "role": "Developer" } ],
然后是那些我们可能不经常使用的更高级的选项。
support
– 在用户需要帮助时,您可以在其中找到支持选项列表autoload
– 您可以在其中为PHP自动加载器设置特定的自动加载映射选项repositories
– 允许您超越标准的Packagist后端,添加PEAR,使用版本控制工具,例如GitHub、Bitbucket或使用Satis的自托管私有包。以下是scripts
部分的示例。您可以看到它列出了如何使用命名空间类的静态类方法来响应多个事件。
"authors": [ { "name": "Xavier Lacot", "email": "xlacot@jolicode.com", "homepage": "http://www.lacot.org", "role": "Developer" }, { "name": "Benjamin Clay", "email": "bclay@jolicode.com", "homepage": "http://ternel.net", "role": "Developer" } ],
与composer.phar
部分一样,将鼠标悬停在它们上面,您将在右侧看到部分细节以及使用示例。
结论
我相信这是一个充分利用Composer的伟大工具。有些人可能会说,它只有一页长,细节不够充分;我不同意。
速查表的设计方式是,显示每个命令行选项的示例用法,并列出完整的composer.json
文件示例,结合每个方面的详细说明和进一步的用法示例,这是一种优雅的方法。
您可以获得所需的所有信息,而不会被信息过载。您怎么看?您认为它可以做得更好,提供更多信息吗?或者它只是恰到好处的长度?请在评论中分享您的想法。
由于它是开源的,如果您发现需要改进的地方、错别字,或者通常想添加更多信息,请参与进来,分叉它并发送拉取请求。
否则,请享受吧。
Composer速查表常见问题解答
Composer速查表是使用Composer(PHP中的依赖管理工具)的开发人员的快速参考指南。它提供了一个命令列表及其说明,这些命令用于管理和安装项目的依赖项。此速查表旨在帮助开发人员节省时间并提高生产力,因为所有必要的命令都集中在一个地方。
要安装Composer,您需要在系统上安装PHP。您可以从官方网站下载Composer安装程序,然后在终端或命令提示符中运行它。安装程序将检查您的PHP设置,并在您的项目目录中下载composer.phar
文件。然后,您可以将此文件移动到PATH中的目录,以使其全局可用。
Composer中的“require”命令用于向您的项目添加新包。当您运行此命令后跟包名称时,Composer将在Packagist存储库中查找该包,下载它,并将其添加到您的composer.json
文件中。它还会使用安装的包的确切版本更新composer.lock
文件。
您可以通过在Composer中运行“update”命令来更新项目中的包。此命令将检查Packagist存储库中composer.json
文件中列出的包的新版本。如果找到新版本,Composer将下载它并更新您的composer.lock
文件。
composer.json
文件中的“require”和“require-dev”部分指定了您的项目所依赖的包。“require”部分列出了项目运行所需的包,而“require-dev”部分列出了仅在开发中需要的包,例如测试工具和文档生成器。
您可以通过在Composer中运行“remove”命令后跟包名称来从项目中删除包。此命令将从您的composer.json
和composer.lock
文件中删除该包,并从vendor
目录中删除包文件。
composer.lock
文件的用途是什么?composer.lock
文件是项目依赖项的精确版本的快照。当您运行“install”命令时,Composer将读取此文件并安装其中列出的包。这确保了参与该项目的每个人都使用相同的包版本。
您可以通过在Composer中运行“show”命令来列出项目中所有已安装的包。此命令将显示项目中所有已安装的包的列表及其版本。
composer.json
文件中的“autoload”部分是什么?composer.json
文件中的“autoload”部分指定了Composer如何自动加载项目的类。自动加载是一种在使用类时自动包含或需要类文件的机制。这消除了在代码中手动包含或需要类文件的需要。
您可以通过在“require”命令中的包名称后附加版本号来指定要安装的包的特定版本。例如,“composer require vendor/package:1.2.3
”将安装版本1.2.3的包。您也可以在composer.json
文件中指定版本约束。
以上是作曲家作弊地图的详细内容。更多信息请关注PHP中文网其他相关文章!