Composer PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。

系统需求:

Composer 需要PHP5.3.2+ 以上的环境来运行。有几个敏感的PHP设置和编译标志也是必需的,但安装程序会发出警告当存在任何不兼容的情况。比如PHP的扩展的要求是,安装或重新编译php without –disable-phar

安装Composer

Composer需要PHP 5.3.2+才能运行。

$ curl -sS https://getcomposer.org/installer | php

这个命令会将composer.phar下载到当前目录。PHAR(PHP 压缩包)是一个压缩格式,可以在命令行下直接运行。

你可以使用--install-dir选项将Composer安装到指定的目录,例如:

$ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin

当然也可以进行全局安装:

$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer

不过通常情况下只需将composer.phar的位置加入到PATH环境变量就可以,不一定要全局安装。

声明依赖

在项目目录下创建一个composer.json文件,指明依赖,比如,你的项目依赖 monolog

{
"require": {
"monolog/monolog": "1.2.*"
}
}

安装依赖

安装依赖非常简单,只需在项目目录下运行:

composer install

如果没有全局安装的话,则运行:

php composer.phar install

自动加载

好,现在安装完了,该怎么使用呢?Composer自动生成了一个autoload文件,你只需要引用它,然后就可以非常方便的去使用第三方的类库了

Composer提供了自动加载的特性,只需在你的代码的初始化部分中加入下面一行:

require 'vendor/autoload.php';  

对于我们需要的monolog,就可以这样用了:

use Monolog\Logger;
use Monolog\Handler\StreamHandler; // create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('/path/to/log/log_name.log', Logger::WARNING)); // add records to the log
$log->addWarning('Foo');
$log->addError('Bar');
 
在这个过程中,Composer做了什么呢?它生成了一个autoloader,再根据各个包自己的autoload配置,从而帮我们进行自动加载的工作。

Composer是PHP中的一个依赖关系管理工具。通过Composer我们可以在发布软件时节省大量的文件数目和控制依赖包的版本。

Composer中文网:http://www.phpcomposer.com/

Composer Github项目:https://github.com/composer/composer

PHP Composer软件包列表:https://packagist.org/



参考: Composer 中文网

最新文章

  1. react+redux官方实例TODO从最简单的入门(4)-- 改
  2. 「2014-3-17」C pointer again …
  3. CSAPP读书随笔之一:为什么汇编器会将call指令中的引用的初始值设置为-4
  4. MSSQL删除字段时出现 服务器: 消息 5074,级别 16,状态 1,行 1 的解决办法
  5. 给出一个长度为n的数列,请对于每一个数,输出他右边第一个比他大的数。n<=100000.
  6. 【BZOJ】【3007】拯救小云公主
  7. [SQLServer]学习总结笔记(基本涵盖Sql的所有操作)
  8. XML DTD验证
  9. 【转】【Android】对话框 AlertDialog -- 不错不错
  10. 【动态规划】Vijos P1104 采药(NOIP2005普及组第三题)
  11. ios基金会-XCode温馨提示
  12. iOS - Core Animation 核心动画的使用
  13. 浅析Servlet执行原理
  14. 如何使用java validation api进行参数校验----Hibernate-Validation
  15. pom的maven仓库的配置
  16. VBA 插入图片到指定单元格并保存图片为图片文件
  17. @ResponseBody 返回乱码 的解决办法
  18. JavaScript 模块化简述
  19. [Flutter] 一些面试可能会问基础知识
  20. C#的Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。语法如下:

热门文章

  1. jenkins启动脚本
  2. Java基础(10)——小结与填坑
  3. CentOS 7.2 安装 MySQL 5.6.24
  4. poj 2392 建塔(多重背包+不定上界)
  5. python 需求文件requirements.txt的创建及使用
  6. radio 实现点击两次 第一次点击选中第二次点击取消
  7. js-js和HTML的两种结合方式
  8. 51Nod 算法马拉松22 开黑记
  9. 前端之body标签中相关标签(一)
  10. 属性只有一个值的这类 html 属性是怎么回事,该如何设置值;比如:checked = “checked” vs checked = true