PHP 的依赖管理工具 Composer 1
无论是在系统中,还是在高级编程语言中,依赖管理工具都扮演着重要的角色,因为它极大地提高了我们的开发效率。
Ubuntu 有 apt-get,Python 有 pip,Node.js 有 npm,PHP 呢?
PHP 有 Composer。 最近一个项目需要,重新拿起 PHP 来编写程序开发。为了提高开发效率,尝试用 Laravel 框架进行开发,学一下新东西。近期应该会整理多一些文章。
Composer 是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
Laravel 框架的功能部分是基于 Composer,了解一下 Composer 对框架的学习与使用有一定的帮助。
总结一下自己使用 Composer 的过程与查阅的参考资料。
一种工具能解决某些具体的问题的属性。比如尺子能解决测量长度的问题。Composer 将这样为你解决问题:
- 问题:你有一个项目依赖于若干个库,其中一些库依赖于其他库。
- 方法:你声明你所依赖的东西。
- 解决:Composer 会根据你的声明,找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。
安装
测试环境:Ubuntu-14.04 + LAMP
,全局安装,把 composer.phar
放在 PATH
中,这样就可以全局访问它了,在类 Unix 系统中,在使用时可以不加 php
前缀。
执行下面两条命令即可:
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
查看 Composer 版本号:
$ composer -V
Composer version 1.1.1 2016-05-17 12:25:44
Composer 工具安装完成!
使用
上面提到 Composer 解决问题的步骤 abc,细化这些步骤:
问题:你正在创建一个项目,你需要一个库来做日志记录。你决定使用 monolog
第三方库,将它添加到你的项目中。
$ mkdir MyProject
$ cd MyProject/
方法:创建一个 composer.json
文件,其中描述了项目的依赖关系。
$ vim composer.json
{
"require": {
"monolog/monolog": "1.2.*"
}
}
composer.json
指出项目需要一些 monolog/monolog
的包,从 1.2 开始的任何版本。
解决:使用 composer install
命令,解决和下载依赖。
$ composer install
$ ls
composer.json composer.lock vendor
可以看到,MyProject 的文件中多了一个文件 composer.lock
和一个文件夹 vendor
。 composer.lock
文件的作用是锁定项目的版本。 vendor 文件夹中包含了 composer.json
中指定的依赖 monolog 库文件和自动加载这些库文件的自动加载文件。依赖关系解决了,下面来看看具体如何在程序中使用 monolog 的功能。
在 MyProject 文件夹下新建 app.php
文件。里面的代码如下:
<?php
require 'vendor/autoload.php';
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
执行这段代码
$ php app.php
没有报错,产生一个 app.log
的文件,这样,第三方库引用就成功了。
参考
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论