简介

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

依赖管理

Composer 不是一个包管理器。是的,它涉及 packageslibraries,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。
这种想法并不新鲜,Composer 受到了 node's npmruby's bundler 的强烈启发。而当时 PHP 下并没有类似的工具。
Composer 将这样为你解决问题:

  • 你有一个项目依赖于若干个库。
  • 其中一些库依赖于其他库。
  • 你声明你所依赖的东西。
  • Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。

声明依赖关系

比方说,你正在创建一个项目,你需要一个库来做日志记录。你决定使用 monolog。为了将它添加到你的项目中,你所需要做的就是创建一个 composer.json 文件,其中描述了项目的依赖关系。

  1. {
  2. "require": {
  3. "monolog/monolog": "1.2.*"
  4. }
  5. }

我们只要指出我们的项目需要一些 monolog/monolog 的包,从 1.2 开始的任何版本。

系统要求

运行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。

安装

Linux

下载 composer.phar,并移动至可执行文件夹中:

  1. curl -sS https://getcomposer.org/installer | php
  2. mv composer.phar /usr/local/bin/composer

注意:有时官网会连接不上,造成这一步卡住,失败。此时可以去 官网 查看下载地址,直接使用 wget 下载 composer.phar

  1. wget https://getcomposer.org/download/1.8.4/composer.phar
  2. mv composer.phar /usr/local/bin/composer

检查是否安装成功:

  1. composer

注意:若出现 -bash: /usr/local/bin/composer: Permission denied,则为权限问题

  1. chmod +x /usr/local/bin/composer

现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar

Windows

下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ,并设置好系统的环境变量,因此你可以在任何目录下直接使用 composer 命令。
设置系统的环境变量 PATH 并运行安装命令下载 composer.phar 文件:

  1. C:\Users\username>cd C:\bin
  2. C:\bin>php -r "readfile('https://getcomposer.org/installer');" | php

注意: 如果收到 readfile 错误提示,请使用 http 链接或者在 php.ini 中开启 php_openssl.dll
composer.phar 同级目录下新建文件 composer.bat

  1. C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat

关闭当前的命令行窗口,打开新的命令行窗口进行测试:

  1. C:\Users\username>composer -V
  2. Composer version 123456

使用

继续上面的例子,composer.json 文件已经申明了依赖关系,此时运行:

  1. composer install

这里将下载 monologvendor/monolog/monolog 目录。

自动加载

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

  1. require 'vendor/autoload.php';

通常你会从所使用框架的单入口文件 index.php 很快找到这行代码,现在就可以使用 monolog 了!