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. codeforces 888A/B/C/D/E - [数学题の小合集]

    这次CF不是很难,我这种弱鸡都能在半个小时内连A四道……不过E题没想到还有这种折半+状压枚举+二分的骚操作,后面就挂G了…… A.Local Extrema 题目链接:https://cn.vjudg ...

  2. POJ 2914 - Minimum Cut - [stoer-wagner算法讲解/模板]

    首先是当年stoer和wagner两位大佬发表的关于这个算法的论文:A Simple Min-Cut Algorithm 直接上算法部分: 分割线 begin 在这整篇论文中,我们假设一个普通无向图G ...

  3. 解决windows系统的oracle数据库不能启动ora-00119和ora-00130的问题

    SQL>startup 报错ora-00119 ora-00130 出现上述错误应该是数据库的监听文件出了问题,修改listener.ora文件: # listener.ora Network ...

  4. xcode工程编译错误:No architectures to compile for

    问题 开发环境:xcode6,iPhone6模拟器 xcode工程编译错误:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active ...

  5. Django - 缓存应用

    Django缓存应用: https://www.cnblogs.com/zuoshoushizi/p/7850281.html https://www.cnblogs.com/alice-bj/p/9 ...

  6. div+css网页标准布局实例教程(一)

    今天学习<十天学会web标准(div+css)>的最后一个章节,本章节把前面学习的零碎内容串联起来,组织成一个网站,将根据本人这些年来的从业经验,从建立站点到一个完整的div+css网页的 ...

  7. eclipse copy web project后修改context root

    1.项目-->右键-->properties

  8. keepalived的log

    vrrp_script chk_http_port { script "</dev/tcp/127.0.0.1/8088" interval 1 weight -2 } ke ...

  9. 更新Newtonsoft.Json后报异常,未能加载文件或程序集“Newtonsoft.Json

    未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个 ...

  10. vue-watch

    <template> <div> <!-- 监听值的改变: --> <button class="th" @click="add ...