Composer使用总结


一、依赖管理

我们在开发时,不会所有的东西都自己写,有时会用到别人已经写好的库或者框架等。一般的做法是到官网或者GitHub下载这些包到指定的目录下,在使用的时候去引用就可以了。

但是如果需要使用的包比较多,而这些包的版本又比较多,甚至这些包还要依赖别的包,那这就是一个费时费力的工作了。于是出现了依赖管理的概念。

二、介绍Composer

Composer是PHP中的一个依赖管理工具。它可以让你声明自己项目所依赖的库,然后它将会在项目中为你安装这些库。

Composer不是包管理器。是的,它实际上和"包"或者库打交道,但是它是以项目为单位进行管理,把它们安装到你项目中的一个目录(例如vendor)。默认情况下它不会以全局的方式安装任何东西。因此,它是一个依赖管理器。

Composer解决的问题是:

a) 你有一个依赖N多库的项目。

b) 这些库中一些又依赖于其他的库。

c) 你声明你所依赖的库。

d) Composer找出哪些包的哪个版本将会被安装,然后安装它们(也就是把它们下载到你的项目中)。

你可以构建自己的开发包仓库,从你自己的仓库中下载安装包文件,也可以从Packagist上下载安装。

三、介绍Packagist

Packagist 是 Composer 的默认的开发包仓库。在Packagist上可以搜索你需要的PHP包,你可以看到当前的版本,每个版本的依赖关系和这个包在GitHub上的地址。

四、使用Composer

1.        下载安装composer

运行Composer需要 PHP 5.3.2+以上版本,我的机器是win10系统。

按下win+r,打开cmd,首先进入某个目录,然后依次执行下面3条命令,这里假设你已经正确安装了PHP,并且配置了环境变量。

 

php -r"copy('https://install.phpcomposer.com/installer','composer-setup.php');"

php composer-setup.php
php -r "unlink('composer-setup.php');"

上述 3条命令的作用依次是:

1)     下载安装脚本 composer-setup.php 到当前目录。

2)     执行安装过程。

3)     删除安装脚本。

 

进入刚才的目录,就会发现多了一个composer.phar的文件,这是 Composer的二进制文件。这是一个 PHAR包(PHP的归档),是 PHP的归档格式,可以帮助用户在命令行中执行一些操作。

2.     使用composer可以在局部(项目目录中)也可以在全局(网站根目录中)

1)     局部安装

       composer.phar复制到项目目录中,确定已经存在composer.json,在命令行中输入命令
       php composer.phar install

将会开始下载依赖,如果提示”pleasecreate a GitHub OAuth token to go over the API rate limit”,访问https://github.com/settings/tokens/创建一个token,然后粘贴在命令行中,然后就会开始下载了。

2)        全局安装

使用局部安装时,需要在每一个项目目录中粘贴composer.phar

如果不想这样的话,找到php根目录(php.exe存在的目录),将composer.phar粘贴进去,然后创建一个文件,取名composer.bat,在其中写入

       @php "%~dp0composer.phar" %*

现在只需要进入你的项目目录,然后输入以下命令:

       composer install

就可以开始安装依赖了

五、Packagist中国全量镜像

一般情况下,安装包的数据(主要是 zip文件)一般是从 github.com 上下载的,安装包的元数据是从 packagist.org 上下载的。

然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被甚至不存在

“Packagist中国全量镜像所做的就是缓存所有安装包和元数据到国内的机房并通过国内的CDN进行加速,这样就不必再去向国外的网站发起请求,从而达到加速 composerinstall以及 composer update 的过程,并且更加快速、稳定。因此,即使packagist.orggithub.com 发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。

要从Packagist中国全量镜像上下载安装,就需要修改配置。两种方法:

1)     修改 composer的全局配置文件(推荐使用)

在命令行中输入以下命令

        composer config -g repo.packagist composer https://packagist.phpcomposer.com

 

2)     修改当前项目的 composer.json 配置文件

打开项目根目录,输入命令

         composer config repo.packagist composer https://packagist.phpcomposer.com
         或者手动修改composer.json文件,在文末添加
"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

六、composer.json

composer.json是composer的配置文件,包含了项目的名称、描述、作者、依赖和版本等信息。

七、composer.lock

安装完成后,会看到最后两行

Writing lockfile

Generatingautoload files

就是生成锁文件和自动加载文件。

composer使用composer.lock控制项目的版本,我们使用install命令来处理的时候,它首先会判断composer.lock文件是否存在,如果存在,将会下载相对应的版本(不会在于composer.json里面的配置),这意味着任何下载项目的人都将会得到一样的版本。

如果不存在composer.lockcomposer将会通过composer.json来读取需要的包和相对的版本,然后创建composer.lock文件

这样子就可以在你的包有新的版本之后,你不会自动更新了,升级到新的版本,使用update命令即可,这样子就能获取最新版本的包并且也更新了你的composer.lock文件

八、vendor/autoload.php

除了库的下载,Composer还准备了一个自动加载文件,它可以加载 Composer下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中:

require 'vendor/autoload.php';
就可以使用vendor中下载的包了

猜你喜欢

转载自blog.csdn.net/llllllloooooo/article/details/78247316