依赖管理
如今有大量的PHP函数库、框架和组件可供选择,一个项目中可能会使用其中的若干——这就是项目的依赖。到目前为止,PHP还没有有效的 项目依赖管理方案。即使你手工的管理它们,你还不得不处理它们的自动加载问题。
目前主要有两个PHP包管理系统:Composer和PEAR,哪个适合你呢?答案是两个都需要。
- 管理单个项目的依赖时使用Composer
- 管理整个系统的PHP依赖时使用PEAR
通常情况下,Composer包只在你项目中明确指定时才可用,而PEAR包在所有的PHP项目中可用。尽管PEAR听起来似乎更简单,但是根据每个 项目制定方案可能更合适。
Composer and Packagist
Composer是一个出色的PHP依赖管理器,把项目的依赖列在composer.json
文件中,然后通过一些简单的命令,Composer就会 自动的帮你下载这些依赖,并配置好自动加载路径。
现在已经有很多PHP库支持Composer,可以在项目中使用它们,具体列表可以点击查看,这是官方支持的Composer兼容的PHP库。
如何安装Composer
Composer可以安装在本地(在当前工作目录,不推荐这种方式),也可以安装在系统中(如/usr/local/bin)。假设你要在本地安装,在 项目的根目录执行:
curl -s https://getcomposer.org/installer | php
它会下载composer.phar
(PHP二进制文档),然后你就可以用php
运行它来完成项目依赖的管理。 请注意:如果 你通过管道直接把下载的代码传给PHP解释器,请先在线阅读代码以确保该代码是安全的。
如何手动安装Composer
手动安装composer有点麻烦,不过很多开发者可能更喜欢这种安装方式。使用交互式安装程序,它会检查你安装的PHP:
- PHP版本满足要求
.phar
文件可以正确执行- 相关目录的权限设置正确
- 没有加载某些不兼容的扩展
- 相应的
php.ini
设置正确
而手动安装则需要你自己做这些事情,你必须自己权衡利弊,以决定是否手动安装。下面是手动获取Composer的方法:
curl -s https://getcomposer.org/composer.phar -o $HOME/local/bin/composer
chmod +x $HOME/local/bin/composer
目录$HOME/local/bin
(或你自己选择其它目录)应该在你的$PATH
环境变量中,从而可以直接运行composer
命令。
这样文档中描述的运行Composer的命令php composer.phar install
,就可以用如下命令替代:
composer install
下面默认你已经在PATH路径下安装Composer。
如何定义和安装依赖
Composer通过文件composer.json
跟踪项目的依赖。这个文件可以手工维护,也可以通过Composer管理,命令php composer require
用于添加项目的依赖,如果项目下还没有composer.json
文件,则会自动创建一个。下面是一个依赖[Twig][40]例子,在项目的根目录执行:
composer require twig/twig:~1.8
或者通过composer init
命令也可以一步步地引导你创建项目所需的composer.json
文件。无论使用哪种方式创建了composer.json
文件后,就可以通过Composer下载和安装项目依赖到目录vendors/
:
composer install
最后在应用的PHP入口文件添加下面代码,告诉PHP使用Composer自动加载器加载项目的依赖库:
<?php
require 'vendor/autoload.php';
现在你就可以使用项目依赖的库了,它们会在需要的时候自动加载。