Composer 是 PHP 的一个依赖管理工具(据说是最优秀的)。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。目前很多项目以Composer 作为依赖管理工具,目前正在学习yii2框架,以yii2为例学习一些常用命令。
安装
具体安装方式可参照composer中文文档,分 *nix 和 win 平台:
安装完成后测试是否安装成功
composer -V
输入图中所示的命令,出现类似图中的结果,表面安装成功。
镜像是什么鬼?
不知道镜像的天朝程序员,不是一个优秀的码农。
由于强力的 GFW 导致无法上一些优秀的国外网站,所以各种镜像服务器诞生了,帮我们把这些网站上的资源都导入到了国内,我们通过修改一个配置就可以下载这些资源了。而且这些资源都是定期同步的,不需要担心资源陈旧问题。
也就是因为这个,N多人望而却步,到现在都不敢用 Composer,感觉好可惜,这么好的工具。
目前唯一还算稳定的 Composer 镜像只有 Packagist / Composer 中国全量镜像 这一家了,虽然偶尔抽风。
使用方法也超简单,推荐全局配置镜像。
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
使用 Composer
常用命令:
1、初始化命令
composer init
该命令通过交互的方式在当前目录下(一般为项目根目录)生成composer.json的配置文件(也可手动编辑生成),yii2中的配置文件如下:
1 { 2 "name": "yiisoft/yii2-app-basic", //包的名称,它包括供应商名称和项目名称,使用 / 分隔 3 "description": "Yii 2 Basic Project Template", //一个包的简短描述 4 "keywords": ["yii2", "framework", "basic", "project template"] ,//该包相关的关键词的数组。这些可用于搜索和过滤 5 "homepage": "http://www.yiiframework.com/", //该项目网站的 URL 地址。 6 "type": "project", //包的安装类型,project: 表示当前包是一个项目,而不是一个库。 7 "license": "BSD-3-Clause", //包的许可协议 8 "support": { //获取项目支持的向相关信息 9 "issues": "https://github.com/yiisoft/yii2/issues?state=open", 10 "forum": "http://www.yiiframework.com/forum/", 11 "wiki": "http://www.yiiframework.com/wiki/", 12 "irc": "irc://irc.freenode.net/yii", 13 "source": "https://github.com/yiisoft/yii2" 14 }, 15 "minimum-stability": "stable",//定义了通过稳定性过滤包的默认行为。默认为 stable(稳定)。 16 "require": { //必须的软件包列表,除非这些依赖被满足,否则不会完成安装 17 "php": ">=5.4.0", 18 "yiisoft/yii2": ">=2.0.5", 19 "yiisoft/yii2-bootstrap": "*", 20 "yiisoft/yii2-swiftmailer": "*" 21 }, 22 "require-dev": { //这个列表是为开发或测试等目的,额外列出的依赖。 23 "yiisoft/yii2-codeception": "*", 24 "yiisoft/yii2-debug": "*", 25 "yiisoft/yii2-gii": "*", 26 "yiisoft/yii2-faker": "*" 27 }, 28 "config": { //仅用于项目的这一组composer配置 29 "process-timeout": 1800 //处理进程结束时间,例如:git 克隆的时间。Composer 将放弃超时的任务。如果你的网络缓慢或者正在使用一个巨大的包,你可能要将这个值设置的更高一些。 30 }, 31 "scripts": { //在安装过程中的各个阶段挂接脚本 32 "post-create-project-cmd": [ 33 "yii\\composer\\Installer::postCreateProject" 34 ] 35 }, 36 "extra": { //任意的,供 scripts 使用的额外数据 本例中用于生成yii2的主要目录权限和CookieValidationKey 37 "yii\\composer\\Installer::postCreateProject": { 38 "setPermission": [ 39 { 40 "runtime": "0777", 41 "web/assets": "0777", 42 "yii": "0755" 43 } 44 ], 45 "generateCookieValidationKey": [ 46 "config/web.php" 47 ] 48 }, 49 "asset-installer-paths": { 50 "npm-asset-library": "vendor/npm", 51 "bower-asset-library": "vendor/bower" 52 } 53 } 54 }
2、安装依赖包命令
composer install
该命令从当前目录读取 composer.json
文件,处理了依赖关系,并把其安装到 vendor
目录下,如果当前目录下存在 composer.lock
文件,它会从此文件读取依赖版本,而不是根据 composer.json
文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。
执行成功结果类似:
3、更新依赖包命令
composer update
该命令将获取依赖的最新版本,并将版本号写入 composer.lock文件
,如果只更新某几个文件,可以在后面指定
更新yii2项目中的依赖,执行结果类似下图:
4、添加依赖命令
composer require
增加新的依赖包到当前目录的 composer.json
文件中,并且安装该依赖
5、全局执行命令
composer global require "fxp/composer-asset-plugin:~1.1.1"
命令允许你在composer主目录下执行其它命令,像 install
、require
或 update
。
并且如果你将主目录下的/vendor/bin路径
加入到了 $PATH
环境变量中,你就可以用它在命令行中安装全局应用
以yii2中安装 Composer Asset 插件为例:
安装成功的话现在Composer Asset 插件就可以在全局范围使用了。
6、创建项目命令
创建yii2基本应用程序模板项目的命令:
composer create-project yiisoft/yii2-app-basic basic 2.0.8
创建yii2高级应用程序模板项目的命令:
composer create-project yiisoft/yii2-app-advanced yii-2.0.8 2.0.8
注:实际执行命令时路径应选择自己的web目录路径,如按照截图中执行将在F:/www目录下创建名称为basic或者yii-2.0.8项目
以创建yii2基本应用程序模板项目为例:
7、更新composer命令
composer update