类似于yum、apt-get、npm、bower等安装方式,它就是PHP里快速安装类库的.使用composer,我们只要知道包名,直接composer insatll就可以了。
Composer是PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
示例:
$ composer require monolog/monolog
这是在安装monolog库。
$ composer create-project laravel/laravel learnlaravel5 5.0.22
这是在安装laravel框架并创建项目。
YII框架也是通过composer安装的。
一些优秀的事例:
overtrue/wechat 让微信开发更简单!
catfan/medoo 一款ORM框架
monolog/monolog 日志记录
hprose/hprose RPC框架
你可以在 https://packagist.org/ 找到你需要的库。甚至你可以提交自己写的优秀的库到该平台里供大家使用。
如果不会composer,流行的laravel、yii框架安装都成为问题,更不用谈学习了;很多优秀的轮子你无法使用。所以,推荐phper必须学会composer。
安装扩展包
以下以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 update
注意:使用composer install或者composer update命令将会更新所有的扩展包,项目中使用需谨慎!!!
若只安装指定的包推荐在命令行使用:
composer require monolog/monolog
进行安装。
如果需要指定版本:
composer require “monolog/monolog:1.2.*”
更新某个包:
composer update monolog/monolog
移除某个包:
composer remove monolog/monolog
如果手动更新了composer.json需要更新autoload:
composer dump-autoload
自动加载
Composer提供了自动加载的特性,只需在你的代码的初始化部分中加入下面一行:
require ‘vendor/autoload.php’;
详细示例
{
“require”: {
“php”: “>=5.4.0”,
“illuminate/database”: “*”,
“monolog/monolog”: “1.2.*”
},
“config”: {
“secure-http”: false
},
“autoload”: {
“classmap”: [
“app/models”
],
“files”: [
“vendor/yjc/src/Alipay/autoload.php”
],
“psr-4”: {
“Yjc\Sms\”: “vendor/yjc/src/Sms”
}
}
}
autoload部分指定自动加载的文件夹,每次里面的文件有新增,使用composer dump-autoload即可。
命令汇总
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进行查看。
注意:
当下载很慢的时候需要切换到全国镜像进行下载:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
laravel 使用composer下载会进行一个报错,那是因为laravel停止维护全国镜像.这个时候解决办法就是切换到阿里的composer镜像了
所有项目都会使用该镜像地址:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config -g --unset repos.packagist