Composer安装和使用
Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor
)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。
对于使用者来说Composer非常的简单,通过简单的一条命令将需要的代码包下载到vendor
目录下,然后开发者就可以引入包并使用了.
其中的关键在于你项目定义的composer.json
,可以定义项目需要依赖的包(可能有多个),而依赖的包可能又依赖其他的包(这就是组件的好处),这些都不用你烦心,Composer会自动下载你需要的一切,一切在于composer.json
的定义.
1、Composer的安装
方法一:下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ,并设置好系统的环境变量,因此你可以在任何目录下直接使用 composer
命令(这是将 Composer 安装在你机器上的最简单的方法,推荐使用。)
一直点下一步就安装成功了,这里的路径是自动加上的,如果没有就手动加上(注:运行 Composer 需要 PHP 5.3.2+ 以上版本)
完成以后,输入"composer -V",显示以下画面说明安装成功
方法二:下载composer.phar放在php目录中直接使用(优点:单一快捷使用composer)
如果您希望手动下载phar,则可以使用以下版本:
我下载的是1.8.0版,在它所在目录直接运行就可以
2、使用Composer下载thinkphp
第一步:首先要把仓库镜像修改成国内的,不然下载很慢
全局配置(推荐)
所有项目都会使用该镜像地址:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config -g --unset repos.packagist
项目配置
仅修改当前工程配置,仅当前工程可使用该镜像地址:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config --unset repos.packagist
使用composer config -g -l查看配置,结果如下,它已经改了镜像地址
第二步:下载think
打开Packagist搜索think
运行这行代码,它就会自动下载think,注:如果不写上ThinkPHP版本,它会下载最新版(tp6)
下面指定下载tp5.1的最新版本(指定版本5.1.*,指定目录名称tp5.1)
composer create-project topthink/think tp5.1 5.1.*
3、安装依赖包
方法一:使用composer.phar安装
要开始在你的项目中使用 Composer,你只需要一个 composer.json
文件。该文件包含了项目的依赖和其它的一些元数据。
第一件事情(并且往往只需要做这一件事),你需要在 composer.json
文件中指定 require
key 的值。你只需要简单的告诉 Composer 你的项目需要依赖哪些包。
{ "require": { "monolog/monolog": "^2.0" } }
你可以看到, require
需要一个 包名称 (例如 monolog/monolog
) 映射到 包版本 (例如 ^.2.0
) 的对象。
编写完composer.json(必须),加上composer.phar
获取定义的依赖到你的本地项目,只需要调用 composer.phar
运行 install
命令。
php composer.phar install
接着前面的例子,这将会找到 monolog/monolog
的最新版本,并将它下载到 vendor
目录。 这是一个惯例把第三方的代码到一个指定的目录 vendor
。如果是 monolog 将会创建 vendor/monolog/monolog
目录。
如果你不想使用composer.phar,在项目加上composer.json(必须),在所在项目运行以下代码:
composer install
方法二:Packagist搜索monolog,直接在网站根目录运行composer require monolog/monolog(无需composer.json和composer.phar,会自动创建json文件)
包版本
在前面的例子中,我们引入的 monolog 版本指定为 ^2.0。这表示任何从 2.0
开始的开发分支,它将会匹配2.0.0或者
2.0.1
版本约束可以用几个不同的方法来指定。
总结
1、composer.json
composer.json文件中保存的是我们安装的组件及组件的版本要求。
2、comopser.lock
composer.lock文件中保存的是组件及其依赖的具体版本,在多人协同开发的情况下,这个文件能很好的解决组件不同而产生的问题。在使用composer install
的时候是不会修改composer.lock
这个文件,所以会把这个文件也放入版本管理中,其它人在使用时只需要composer install
就可以了。而使用composer update
后修改这个文件。
综上所述:
composer.lock
这个文件主要是解决在协同开发中组件及其依赖的版本记录,防止不同人使用的组件及依赖版本不同。