Composer使用
一、composer是什么
如果你知道yum
、apt-get
、npm
、bower
等命令中的一种或者多种,那么,你也能很快知道composer
是什么了。没错,它就是PHP里快速安装类库的。平时,我们安装一个PHP类库,需要搜索->下载
;使用composer
,我们只要知道包名,直接composer insatll
就可以了。
PHP 语言本身就带有强大的网络功能、文件管理功能和丰富的系统 API,Composer 也只是一段 PHP 脚本而已。
引自Composer中文网的描述:
二、作用
安装PHP包、依赖库。
示例:
$ composer require monolog/monolog
这是在安装monolog
库。
$ composer create-project laravel/laravel learnlaravel5 5.0.22
这是在安装laravel
框架并创建项目。
YII
框架也是通过composer
安装的。
三、为什么用composer
通过过composer
,我们可以使用大量的第三方库,而无需自己造轮子。优秀项目示例:
- overtrue/wechat 让微信开发更简单!
- catfan/medoo 一款ORM框架
- monolog/monolog 日志记录
- hprose/hprose RPC框架
你可以在 https://packagist.org/ 找到你需要的库。甚至你可以提交自己写的优秀的库到该平台里供大家使用。
如果不会composer
,流行的laravel
、yii
框架安装都成为问题,更不用谈学习了;很多优秀的轮子你无法使用。所以,推荐phper必须学会composer。
四、win10下安装composer
1、使用安装程序
这是将 Composer 安装在你机器上的最简单的方法。
下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ,并设置好系统的环境变量,因此你可以在任何目录下直接使用 composer
命令。
2、PHP命令安装
1. cmd进入命令提示符,进入安装目录下
我的安装目录在(D:\composer),如图
2. 下载composer.phar
输入命令: php -r "readfile('https://getcomposer.org/installer');" | php
注意:
1)如果出现如下错误,你需要为 PHP 设置环境变量(环境变量目录指向php.exe目录),让全局都能访问
2)如果收到 readfile 错误提示,请使用 http
链接或者在 php.ini 中开启 php_openssl.dll
3. 在 composer.phar 同级目录下新建文件 composer.bat
输入命令: echo @php "%~dp0composer.phar" %*>composer.bat
4. 关闭当前的命令行窗口,打开新的命令行窗口进行测试
输入命令:composer -V
注意:
如果composer 没有配置环境变量,就只能在安装目录下运行,不然会报如下错误;
若是已配置环境变量,并在新的命令行窗口使下该命令仍报如下错误,那么请重启一下计算机;
安装成功后在命令行窗口运行composer,会显示下面内容,说明安装成功
五、使用composer安装扩展包
以下以monolog
为例:
1、声明依赖
在项目目录下创建一个composer.json
文件,指明依赖,比如,你的项目依赖 monolog:
{
"require": {
"monolog/monolog": "1.2.*"
}
}
如果不需要使用https
,可以这么写,以解决有时候因为https造成的问题:
{
"require": {
"monolog/monolog": "1.2.*"
},
"config": {
"secure-http": false
}
}
2、安装依赖
安装依赖非常简单,只需在项目目录下运行:composer install
更新全部的包(谨慎使用):composer update
注意:使用composer install
或者composer update
命令将会更新所有的扩展包,项目中使用需谨慎!!!
(1)若只安装指定的包推荐在命令行使用:
composer require monolog/monolog
进行安装。
如果需要指定版本:
composer require "monolog/monolog:1.2.*"
(2)更新某个包:
composer update monolog/monolog
(3)移除某个包:
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选项查看帮助信息
八、常见镜像地址:
https://packagist.org 国外的,默认
http://packagist.phpcomposer.com 中国全量镜像,推荐使用。网址:https://pkg.phpcomposer.com/
1、镜像用法
有两种方式启用本镜像服务:
- 系统全局配置: 即将配置信息添加到 Composer 的全局配置文件
config.json
中。见“方法一” - 单个项目配置: 将配置信息添加到某个项目的
composer.json
文件中。见“方法二”
方法一: 修改 composer 的全局配置文件(推荐方式)
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
方法二: 修改当前项目的 composer.json
配置文件:
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json
文件所在目录),执行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
2、解除镜象:
如果需要解除镜像并恢复到 packagist 官方源,请执行以下命令:
composer config -g --unset repos.packagist
执行之后,composer 会利用默认值(也就是官方源)重置源地址。
ps:我的composer是默认安装在c盘,路径为:C:\ProgramData\ComposerSetup\bin