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://getcomposer.org/

快速入门: 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基本流程的更多相关文章

  1. 记录archlinux中安装pcl的大致流程

    贴一下pcl在github上的网址: https://github.com/PointCloudLibrary/pcl/ 从这个网址出发,一般能找到安装的 tutorial.以下只说一下在archli ...

  2. centos系统下安装使用composer教程

    Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "packages" ...

  3. VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器

                        VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器      View Compose服务可安装在管理虚拟机的vC ...

  4. CentOS下安装yum源的流程和操作

    一般公司都用Linux来搭建服务器,Linux安装软件时能够用yum安装依赖包是一件非常简单而幸福的事情,因为你只需一个简单的安装命令yum install []即可安装相应的软件,yum工具会自动的 ...

  5. 续安装好composer和workerman之后;TP5运行workerman的操作

    TP5想要实现时时通讯:首先先安装好composer和workerman,我之前有写一篇安装的方法,在cmd里面安装:tp5手册上面有写cmd命令的代码:接下来是安装好后如何运行的: 首先在项目中建立 ...

  6. laravel windows安装(composer)

    1.安装composer参考windows 安装tp5 composer方式 2.先配置好本地虚拟域名,在cmd里面切换到网站根目录 ... 3.安装成功之后,在浏览器输入已配置的虚拟域名我的是,la ...

  7. centOS7下安装laravel + composer

    1.wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer chmod a+x /usr/local/bi ...

  8. Eclipse安装Activiti插件(流程设计器)

    Eclipse安装Activiti插件(流程设计器) 一.安装步骤: 1,打开Eclipse的 Help -> Install New Software,填上插件地址: Name:Activit ...

  9. Laravel安装和composer安装

    下载地址:https://getcomposer.org/download/ 他会自动找到你的php目录,如果没有记得手动修改  一直点下一步,即可. 如果安装不成功,可能是之前安装过composer ...

随机推荐

  1. UESTC 1059 - 秋实大哥与小朋友

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1059 Time Limit: 3000/1000MS (Java/Others)     Memory Li ...

  2. jQuery 常见开发使用技巧总结

    1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...

  3. Oracle安装部署之RedHat安装Oracle11g_R2

    硬件配置 内存 :≥1G 硬盘空间:≥10G 上传oracle11g安装包: putty上用wcw用户登录,通过ftp服务上传oracle安装文件到/home/wcw目录下解压 #unzip linu ...

  4. CAP 一致性协议及应用解析

    https://mp.weixin.qq.com/s/26x8O1bRzurl84e3nM6TTA CAP 一致性协议及应用解析 原创: 有赞技术 有赞coder 1周前 文 | 云开 on 用户中心 ...

  5. svn冲突的解决

    svn文件冲突的解决 冲突后,会产生三个多余的文件. ①文件名.扩展名.mine 这是你的文件,在你更新你的工作副本之前存在于你的工作副本中--也就是说,没有冲突标志.这个文件 除了你的最新修改外没有 ...

  6. 最大生成树——LCA

    今天说是要练习LCA结果找了道题看着题解打完了,如此惭愧,Lca还得好好理解啊,感觉在最大生成树上做有点异样,可能还是不是很理解吧,在noip前一定要再把这道题再a一遍,好题啊. 这是2013noip ...

  7. 快捷键(SourceInsight)

    选择一块 : Ctrl+-选择一行 : Shift+F6到下一个函数 : 小键盘 +上一个函数 : 小键盘 -高亮当前单词 : Shift+F8回退.前进 alt + , alt + .最后一个窗口 ...

  8. 用lua扩展你的Nginx(整理)

    首先得声明.这不是我的原创,是在网上搜索到的一篇文章,原著是谁也搞不清楚了.按风格应该是属于章亦春的文章. 整理花了不少时间,所以就暂写成原创吧. 一. 概述 Nginx是一个高性能.支持高并发的,轻 ...

  9. Ultra-QuickSort(poj 2299归并排序)

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=232#problem/A B - Ultra-QuickSort Time Li ...

  10. mysql 常用命令 常用SQL语句

    维护命令 数据库 ##创建数据库 mysql> create database test; Query OK, 1 row affected ##删除数据库 mysql> drop dat ...