安装使用composer基本流程
composer工作原理:

这里经过几个步骤:
1.composer读取composer.json(这个文件手动建立,官网有格式),这个json是在当前执行composer目录的,如果目录下没有这个json文件,程序可以在安装模块的时候选择自动建立这个文件
{
"require": {
"monolog/monolog": "1.0.*",(多模块个的话需要用到这个逗号)
"monolog/monolog": "1.0.*"
}
}
官方原版的是这样的:
{
"require": {
"monolog/monolog": "1.0.*"
}
}
2.composer通过读取到的json数据去Packagist.org获取各个包的包名、作者、下载URL等信息。下载URL经常是GitHub上面的,因为目录的代码大部分都托管在GitHub上面嘛.
3.将从Packagist.org获取到的元数据存放到当前目录的composer.lock中.
4.composer读取composer.lock中的元数据,根据元数据一次下载包,并且放到当前目录的vender目录里面.
composer有不少常用的命令,比如composer install 、composer update、composer require。这三个命令都是会下载php类库的,composer update 会将步骤1、2、3、4都执行一遍,所以下载的类库是composer.json配置中匹配搭配的最新类库,而composer install,只是执行步骤4。
composer require 会将配置写入composer.json,然后执行步骤1、2、3、4或许你会问,如何知道不同的包他们的配置是怎么写的,这个你就要去Packagist.org了,每个开源项目都会有安装和使用方法的。
我们一般安装使用composer的步骤是:
1.windows操作系统下首先下载安装文件: https://getcomposer.org/Composer-Setup.exe.安装的时候会有个目录的选择,选择你当前使用的php执行文件就行了.安装过程中要修改你的PHP.INI文件,其实就是在里面把php_openssl.dll的功能给打开了而已,安装完毕会提示你重启系统以便让系统环境生效.还有一种更简单的安装方法,就是只下载composer.phar可执行文件,运行这个文件可以实现与运行composer相同的效果,但是这样不会自己修改系统相关文件和环境变量,在这里就不采用这种方法了.
2.系统重启后php运行目录和composer运行目录已经被自动加到系统环境变量当中去了.在dos下运行composer会有版本信息和可执行的指令显示出来,表示安装成功.

3.在项目根目录下新建composer.json文件,如果没有手动建立这个文件的话也可以在安装包的时候由系统自己建立.执行composer生成composer.lock文件.如果安装太慢可以把数据仓库改成国内全镜量的网址,可以提高下载速度.修改方式有两种:
第一种是修改全局参数:
修改前查看当前镜像的方式:composer config -gl。 修改后再查看一下确认是否安装成功。
composer config -g repo.packagist composer https://packagist.phpcomposer.com
第二种是只修改当前项目的配置, 先进入你的项目的根目录(也就是 composer.json 文件所在目录),然后执行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
上述操作会在你的composer.json文件最后添加以下内容(你也可以手动添加):
//下面两个红色的大括号是手动建立composer.json文件时手动加的,整个文件的内容为下面的代码就可以正常使用国内的镜像了
{
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
4.一般只有第一次安装的时候用composer install指令,其它时候都应该用composer require指令,这个指令如果没有指令安装哪个包,系统会有提示让你选择搜索哪个包。千万不要用composer updata指令,这个指令没有指定安装哪个包的话会把你的所有包和相关的依赖文件都更新到新版本,会造成已开发系统的不稳定.composer.json和composer.lock都不要手动修改,需要修改的话用composer require指令修改并执行.例如升级某个模块及其依赖包的版本或者是安装新的扩展包.举个例子如下:


5.如果某个包不使用了需要删除的话,先用composer show 指令查看已安装的包的完整名称,然后用"composer remove 完整包名"来删除这个包,同时会把这个包的相关依赖文件及文件夹一并删除.

各种安装方式的简单解释:
composer install - 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖;
composer update - 从 composer.json 安装最新扩展包和依赖;
composer update vendor/package - 从 composer.json 或者对应包的配置,并更新到最新;
composer require new/package - 添加安装 new/package, 可以指定版本,如: composer require new/package ~2.5.
备注:如果某个包因版本问题无法安装,确认版本没问题后可以在安装的时候加上参数:--ignore-platform-reqs 忽略版本号安装。
参考文档:
快速入门: https://www.kancloud.cn/huizong/composer/284036
中文文档: https://www.kancloud.cn/thinkphp/composer/35669
官方元数据仓库: https://packagist.org/
中国全量镜像: https://pkg.phpcomposer.com/
正确的 Composer 扩展包安装方法: http://blog.csdn.net/xianglingchuan/article/details/51930960
安装使用composer基本流程的更多相关文章
- 记录archlinux中安装pcl的大致流程
贴一下pcl在github上的网址: https://github.com/PointCloudLibrary/pcl/ 从这个网址出发,一般能找到安装的 tutorial.以下只说一下在archli ...
- centos系统下安装使用composer教程
Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "packages" ...
- VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器
VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器 View Compose服务可安装在管理虚拟机的vC ...
- CentOS下安装yum源的流程和操作
一般公司都用Linux来搭建服务器,Linux安装软件时能够用yum安装依赖包是一件非常简单而幸福的事情,因为你只需一个简单的安装命令yum install []即可安装相应的软件,yum工具会自动的 ...
- 续安装好composer和workerman之后;TP5运行workerman的操作
TP5想要实现时时通讯:首先先安装好composer和workerman,我之前有写一篇安装的方法,在cmd里面安装:tp5手册上面有写cmd命令的代码:接下来是安装好后如何运行的: 首先在项目中建立 ...
- laravel windows安装(composer)
1.安装composer参考windows 安装tp5 composer方式 2.先配置好本地虚拟域名,在cmd里面切换到网站根目录 ... 3.安装成功之后,在浏览器输入已配置的虚拟域名我的是,la ...
- centOS7下安装laravel + composer
1.wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer chmod a+x /usr/local/bi ...
- Eclipse安装Activiti插件(流程设计器)
Eclipse安装Activiti插件(流程设计器) 一.安装步骤: 1,打开Eclipse的 Help -> Install New Software,填上插件地址: Name:Activit ...
- Laravel安装和composer安装
下载地址:https://getcomposer.org/download/ 他会自动找到你的php目录,如果没有记得手动修改 一直点下一步,即可. 如果安装不成功,可能是之前安装过composer ...
随机推荐
- HDU 3642 - Get The Treasury - [加强版扫描线+线段树]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3642 Time Limit: 10000/5000 MS (Java/Others) Memory L ...
- Linux:获取当前进程的执行文件的绝对路径
摘要:本文介绍Linux的应用程序和内核模块获取当前进程执行文件绝对路径的实现方法. 注意:使用此方法时,如果执行一个指向执行文件的链接文件,则获得的不是链接文件的绝对路径,而是执行文件的绝对路径. ...
- SS iproute2,nslookup,dig
从某种意义上说,iproute工具集几乎可以替代掉net-tools工具集,具体的替代方案是这样的:用途 net-tool(被淘汰) iproute2地址和链路配置 ifconfig ip ...
- LoadRunner-参数化(参数间关联)
多用户测试,每个用户账号对应一个密码,账号和密码需要一 一关联才能登录成功. 1.在已经对账号进行参数化后,选中密码的值->右键选择Replace with a Parameter,参数名为pa ...
- Zhu and 772002---hdu5833(高斯消元解求异或方程组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5833 题意:给n个数,选择一些数字乘积为平方数的选择方案数. 分析:每一个数字分解质因数.比如4, 6 ...
- [py]戏说python面向对象细节
面向对象圣经 认识面向对象 什么是面向对象? 有什么实在的好处? 被坑了这么多年,没弄清楚和面向过程有啥切身的区分 我以为这都是大学老师的错. 没把我们启蒙好. 这么多年深受其害. 总结起来三个字: ...
- ios一些问题
多线程,加锁,如何互斥. http里面的get put post的差别 sockect tcp udp
- js数组之可变函数
在js的数组中有两个方法为数组添加元素:1.push();2.unshift(),push函数是将元素添加到数组的末尾,现在不用说大家估计也能猜出来,unshift这个函数就是把元素添加到数组的开头的 ...
- #C++初学记录(算法2)
A - Game 23 Polycarp plays "Game 23". Initially he has a number n and his goal is to trans ...
- 去n的第一个出现的1
实例十八:去n的第一个出现的1 方法:result=n & (n-1) 与实例十七 思路类似.实例十七是不断取1,本例只去最低位. 解释:n 0000 1111n-1 0000 1110&am ...