返回首页 PHP 之道

依赖管理

如今有大量的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';

现在你就可以使用项目依赖的库了,它们会在需要的时候自动加载。

上一篇: 语言亮点 下一篇: Coding Practices