Composer 学习笔记

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主目录下执行其它命令,像 installrequire 或 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

时间: 2024-10-29 19:06:09

Composer 学习笔记的相关文章

#[Composer学习笔记]Part2:添加路由

在Part1的基础上,为项目添加路由: 增加路由扩展:这里选择macaw,在composer中的扩展包为: codingbean/macaw 编辑composer.json文件: {   "require": {     "codingbean/macaw": "dev-master"     } } 保存,并执行: composer.phar update 这时,vendor下就多了 codingbean 文件夹 编辑路由规则 创建config

#[Composer学习笔记]Part1:安装composer并通过composer创建一个项目

安装composer 这里分享的是linux下的composer安装: 首先,创建一个目录放置composer,并进入目录: mkdir /opt/composer cd /opt/composer 下载composer,下载成功后注册composer.phar为全局命令 curl -sS https://getcomposer.org/installer | /opt/php/bin/php ln -s /opt/composer/composer.phar /bin/composer.pha

node.js框架StrongLoop学习笔记(一)

node.js框架StrongLoop学习笔记(一) 本人在用node.js做手机后台,查找框架发现StrongLoop挺适合,可是却发现没有中文教程,于是在自己学习时,做一下笔记,以方便其他像我一样的人参考(本人的英语水平非常差,只能一点点试着做,并记录下来,如果大家发现问题,请通知我好更正,谢谢了!).所有操作都是在CentOS7-x64,Node.js 0.12.2下完成的. nodejs框架StrongLoop学习笔记一 安装StrongLoop 创建项目 安装数据库驱动 配置数据库连接

Laravel学习笔记(三)--在CentOS上配置Laravel

在Laravel框架上开发了几天,不得不说,确实比较优雅,处理问题逻辑比较清楚. 今天打算在CentOS 7上配置一个Laravel,之前都是在本机上开发,打算实际配置一下. 1)系统上已经安装了Apache.PHP.mysql,安装命令为yum install httpd php mysql 因为CentOS 7自带的php模块很少,如果需要增加模块,需要编译才行,所以需要php-devel模块,用yum install php-devel命令就可以了. 2)安装laravel a)安装com

Fiddler学习笔记

 一.Fiddler的工作原理 它在客户端与服务器之间创建了一个代理服务器.通过设置浏览器的代理服务器为:127.0.0.1:8888 来截获发出的请求.(在安装完Fiddler之后一般是不需要手动设置代理服务器才对,但是我在360浏览器中,必须要配置代理服务器后Fiddler才会去监视,而Chrome大概是由于以前装过红杏,Fiddler也没有去监视,在取消了Chrome的代理服务器后重启Fiddler此问题解决) 二.Fiddler的代理模式 1.流模式:实时返回(更接近浏览器本身的行为)2

Laravel学习笔记目录

伴随自己学习.使用laravel的过程,记录下遇到过的问题与思考.与程序猿们共勉,知识的道路没有止境,我们一直都在学习的路上. 第一部分:入门级 这部分文章写得都是比较浅显的,属于纯粹的使用,我也不知道自己什么时候能够登堂入室.先这么写着吧.后面的项目会用到利用laravel来进行app的服务端开发.到时可能也开一个专栏专门说说app服务端开发的那些事儿. 1. Laravel5学习笔记:Composer.json配置文件说明 2. Laravel5学习笔记:执行route:cache时报Log

laravel3学习笔记(四)

原作者博客:ieqi.net ==================================================================================================== 视图 Laravel3遵循MVC模式,视图层负责将控制器处理好的数据展示出来,view层相关代码文件保存在application/views目录下,并且以php结尾. 因为PHP本身就可以和HTML混写的特性,一般而言,PHP框架的View层某种程度上也可以作为模板使

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu