@52fhy
        
        2016-03-06T15:20:10.000000Z
        字数 4031
        阅读 480
    PHP
如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道composer是什么了。没错,它就是PHP里快速安装类库的。平时,我们安装一个PHP类库,需要搜索->下载;使用composer,我们只要知道包名,直接composer insatll就可以了。
PHP 语言本身就带有强大的网络功能、文件管理功能和丰富的系统 API,Composer 也只是一段 PHP 脚本而已。
引自Composer中文网的描述:
是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
安装PHP包、依赖库。
示例:
composer create-project laravel/laravel learnlaravel5 5.0.22
这是在安装laravel框架。YII框架也是通过composer安装的。
下面是安装命令(来自https://getcomposer.org/download/):
php -r "readfile('https://getcomposer.org/installer');" > composer-setup.phpphp -r "if (hash('SHA384', file_get_contents('composer-setup.php')) === 'fd26ce67e3b237fffd5e5544b45b0d92c41a4afe3e3f778e942e43ce6be197b9cdc7c251dcde6e2a52297ea269370680') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); }"php composer-setup.phpphp -r "unlink('composer-setup.php');"
按顺序执行即可。安装好后提示:
All settings correct for using ComposerDownloading...Composer successfully installed to: /root/composer/composer.pharUse it: php composer.phar
操作执行结束,会在当前目录下生成composer.phar文件。
在Linux里,composer.phar是可执行程序。
例如,我们可以使用php composer.phar update执行更新操作。
全局安装:
mv composer.phar /usr/local/bin/composer
之后,就可以直接使用composer install安装包了。不过通常情况下只需将composer.phar的位置加入到PATH就可以,不一定要全局安装。
在合适的地方新建一个文件夹,命名为 MFFC(My First Framework based on Composer),在文件夹下新建文件 composer.json:
{"require": {}}
命令行切换到 MFFC 目录下,运行:
composer update
就会在该目录下生成一个vendor文件夹。里面的代码大家可以看看。
以下以monolog为例:
在项目目录下创建一个composer.json文件,指明依赖,比如,你的项目依赖 monolog:
{"require": {"monolog/monolog": "1.2.*"}}
如果不需要使用https,可以这么写,以解决有时候因为https造成的问题:
{"require": {"monolog/monolog": "1.2.*"},"config": {"secure-http": false}}
安装依赖非常简单,只需在项目目录下运行:
composer install
如果没有全局安装的话,则运行:
php composer.phar install
Composer提供了自动加载的特性,只需在你的代码的初始化部分中加入下面一行:
phprequire 'vendor/autoload.php';
composer list 列出所有可用的命令composer init 初始化composer.json文件(就不劳我们自己费力创建啦),会要求输入一些信息来描述我们当前的项目,还会要求输入依赖包composer install 读取composer.json内容,解析依赖关系,安装依赖包到vendor目录下composer update 更新最新的依赖关系到compsoer.lock文件,解析最新的依赖关系并且写入composer.lock文件composer search packagename 搜索包,packagename替换为你想查找的包名称composer require packagename 添加对packagename的依赖,packagename可修改为你想要的包名称composer show packagenamecomposer self-update 更新 composer.phar文件自身composer dump-autoload --optimize 优化一下自动加载composer command --help 以上所有命令都可以添加 --help选项查看帮助信息
更多可用命令,可以在命令行输入composer进行查看。
packagist.org是Composer的仓库,很多著名的PHP库都能在其中找到。你也可以提交你自己的作品。
当你安装完Composer后,使用时,却发现不能下载包,或者很慢,这是一个『众所周知』的原因。
所以,我们使用国内的镜像站点进行代替,常用方法有两种:
1、修改全局配置:全局配置的文件一般放在C:\Users\XXX\AppData\Roaming\Composer\config.json,例如C:\Users\YJC\AppData\Roaming\Composer\config.json。(这里以windows路径为例)
{"config": {},"repositories": [{"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},{"packagist": false}]}
2、修改当前配置:即项目当前的composer.json文件;
{"require": {"noahbuscher/macaw": "dev-master"},"repositories": [{"packagist": false},{"type": "composer","url": "http://packagist.cn"}]}
3、常见镜像地址: 
https://packagist.org 国外的 
http://packagist.cn  中国的 
http://packagist.phpcomposer.com 中国全量镜像 
http://pkg.phpcomposer.com/repo/packagist 
http://pkg.uselaravel.com/repo/packagist 日本的
Framework Interoperability Group(框架可互用性小组),简称 FIG,成立于 2009 年。FIG 最初由几位知名 PHP 框架开发者发起,在吸纳了许多优秀的大脑和强健的体魄后,提出了 PSR-0 到 PSR-4 五套 PHP 非官方规范:
之后,在此标准之上,Composer 横空出世!Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统。Composer 类似著名的 npm 和 RubyGems,给海量 PHP 包提供了一个异常方便的协作通道,Composer Hub 地址:https://packagist.org/。Composer 中文网站:http://www.phpcomposer.com/。
目前 PHP 界风头正劲的 Laravel 和 Symfony 均直接基于 Composer,大家耳熟能详著名框架 CI 和 Yii 的正开发版本 CodeIgniter 3 和 Yii 2 也都基于 Composer(更新:北京时间2014年10月13日 Yii 2 已经发布)。Composer 就是 PHP 框架的未来,有了它,让 CI 的路由和 Laravel 的 Eloquent ORM 协作就会变的非常简单。
1、利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备 - 岁寒 
https://lvwenhan.com/php/405.html
2、PHP 开发者该知道的 5 个 Composer 小技巧 - 新闻 - SegmentFault 
https://segmentfault.com/a/1190000000355928
3、Composer 中文网 
http://www.phpcomposer.com/
4、Packagist / Composer 中国全量镜像 
http://pkg.phpcomposer.com/
5、Composer安装 
https://getcomposer.org/download/