首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用于 PHP 依赖关系处理的 Composer(1)

用于 PHP 依赖关系处理的 Composer(1)

由于 PHP 已经成熟,使用它建立的应用程序的复杂性在急剧增长。现代 PHP                开发人员往往依靠第三方库来帮助自己更快地构建软件项目。例如,如果不使用现在为 PHP 提供的维护良好的第三方库,那么有可能无法构建像                Facebook                这种规模的应用程序。但是,软件重用的好处是有代价的:您不仅必须管理每个应用程序安装所需的库的列表,还必须管理所创建的依赖关系树,因为所使用的库均构建于其他库之上。您如何能够管理多个库的复杂且相互依赖的安排?
PHP                开发人员在过去常用的两种依赖关系处理解决方案已失去其效率。其中一个解决方案是将自己所需的所有库与自己的代码一起签入到版本控制存储库中。这种技术在某程度上是可行的,但所造成的麻烦往往比它解决的问题更大。您需要维护自己的本地库版本。您必须通过下载新的版本,并将其签入存储库,从而手动执行任何可用的库错误修复。最终,版本控制中会有一个巨大的变更日志,它与实际代码完全无关。由于这些原因,库一般会逗留在开始时刚好签入的那个版本,很少被更新。
关于本系列PHP 作为一个活跃的开源项目在不断的改进,目前为许多 Web 网站提供支持。PHP 早期是一种模板语言,从那时到现在,PHP                    已经历了显著的变化。如果您多年没有使用过或评估过 PHP 技术,那么您很可能几乎认不出当前的一些 PHP 项目。本系列文章将向您展示最新的                    PHP 功能,以及如何使用当今的 PHP 来构建现代化的、安全的网站。

PHP Extension and Application Repository (PEAR) 项目的部分设计目的是帮助您解决这个问题。PEAR                提供了一组配合工作的库,程序员可以为该库做出贡献。PEAR 还包括命令行工具,用于安装所需的库及其依赖关系(如果有的话)。PEAR                在很长一段时间中曾是最好的办法,并且有很多人使用它,但这个系统也有其不足之处。
PEAR                库安装被全局存储在操作系统上。虽然这种设计可以避免将库签入到您自己的版本控制存储库中,但它导致的问题比它解决的问题还要多。永远不知道在自己可能使用的任何系统上到底在运行哪个库版本。这种混乱往往成为虚假错误的来源:您会在新服务器上安装自己的应用程序,然后感到困扰,为什么它不工作,最终您可能认识到,原因是有问题的服务器没有合适的                PEAR 库。您需要访问权限来安装这些全局库(这是很多人在共享托管方面都觉得棘手的一个问题)。
“大家都知道,与第一步编写程序相比,调试的难度要高得多。                    所以,如果在编写时尽可能聪明一些,又怎么会需要调试呢?”
Brian Kernighan

2011 年 4 月,两位 PHP 开发人员(Nils Adermann 和 Jordi Boggiano)认为 PHP                的依赖关系处理问题需要有一个新的解决方案,并开始进行开发。他们在 2012 年 3 月 1 日发布了  。在 Composer                中,您可以创建一个配置文件,指定应用程序所需的第三方库(无论它们被托管在哪里)。然后运行 Composer,编写                完整的应用程序:Composer 下载您指定所有的库及其所有依赖关系。本文将介绍 Composer 的基础知识,演示如何开始在 PHP                项目中使用该工具。
安装 ComposerComposer 是一个多平台工具。在任何基于 UNIX® 或 Linux® 的计算机上,安装 Composer                都很简单。您可以通过 curl 和 PHP 直接运行安装程序,创建一个本地安装:
1
curl -sS https://getcomposer.org/installer | php




上面的命令在本地 composer.phar 可执行文件中创建一个 Composer 安装。为了系统上的任何地方都能全局访问这个安装,请将                composer.phar 复制到您的路径的一个目录中,如本例所示(您可能需要使用 sudo 给自己赋予根目录的写权限):
1
mv composer.phar /usr/local/bin/composer




现在,您可以在系统上任何位置从命令行运行 composer。
在 Windows®上,手动安装比较困难,所以 Composer 创建者开发了一个  ,您可以下载并运行它。在完成安装后,您可以从 Windows 命令行使用 Composer。
基本用法 Composer 是一个功能强大的工具,提供了数量惊人的选项。但是,最常见的用法是,根据第三方提供的配置,为第三方 PHP                应用程序或框架创建/下载/安装一个代码库。例如,可以                  Zend 框架及其所有依赖关系。运行 Composer 的 install 命令,Composer                就会完成余下的工作。
如果全局安装了 Composer(或安装在 Windows 上),请运行以下命令:
1
composer install




如果只对一个应用程序完成了本地 Composer 安装,则运行:
1
php composer.phar install




在本文的其余部分,我的示例假设您已全局安装了 Composer。
除了下载项目/应用程序所需的所有库之外,Composer 还提供了一个方法,让您可以轻松地包括所有的库。它将所有的库安装到一个命名为 vendor                的文件夹,将它们与您自己的项目代码区分开来。在 vendor 文件夹中,它创建了一个名为 autoload.php                的文件。在您的项目中包括该文件,这等于为 Composer 所下载的所有库都安装了一个自动加载程序:
1
require 'vendor/autoload.php';

返回列表