@52fhy
2016-03-06T23:20:10.000000Z
字数 4031
阅读 412
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.php
php -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.php
php -r "unlink('composer-setup.php');"
按顺序执行即可。安装好后提示:
All settings correct for using Composer
Downloading...
Composer successfully installed to: /root/composer/composer.phar
Use 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 packagename
composer 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/