PHP下Composer依赖包管理工具使用

简介

Composer是一个可以用来安装管理指定依赖包的工具

安装Composer

方法1

curl -sS https://getcomposer.org/installer | php

方法2

php -r "readfile('https://getcomposer.org/installer');" | php

使用

确保当前目录存在composer.json 依赖配置文件,例如

{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}

其中,版本号可以使用>、>=、<、<=、!= ,或使用* 通配符

php composer.phar install

或者将composer.phar 复制到/usr/bin/composer ,执行composer install

安装完成后会自动创建composer.lock 锁文件,里面包含确切的版本号。下次执行install会下载相同的版本使环境保持一致。

如果如要更新依赖库的版本号,执行php composer.phar update ,将根据composer.json 文件配置更新依赖包,并重新生成composer.lock 锁文件

自动加载机制使用与配置

composer会自生成一个自动加载的支持,只需加入如下代码

require 'vendor/autoload.php';

也可以在composer.json的autoload字段添加自己的autoloader

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

Composer 将注册一个 PSR-4 autoloader 到 Acme 命名空间。

你可以定义一个从命名空间到目录的映射。此时 src 会在你项目的根目录,与 vendor 文件夹同级。例如 src/Foo.php 文件应该包含 Acme\Foo 类。

添加 autoload 字段后,你应该再次运行 install 命令来生成 vendor/autoload.php 文件。

引用这个文件也将返回 autoloader 的实例,你可以将包含调用的返回值存储在变量中,并添加更多的命名空间。这对于在一个测试套件中自动加载类文件是非常有用的,例如。

$loader = require 'vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);

除了 PSR-4 自动加载,classmap 也是支持的。这允许类被自动加载,即使不符合 PSR-0 规范。详细请查看 自动加载-参考

注意: Composer 提供了自己的 autoloader。如果你不想使用它,你可以仅仅引入 vendor/composer/autoload_*.php 文件,它返回一个关联数组,你可以通过这个关联数组配置自己的 autoloader。

配置使用更快的源

1,使用全局配置,执行如下命令

composer config -g repositories.packagist composer http://packagist.phpcomposer.com

2,在composer.json 追加如下配置,其中“packagist”: false 表示不使用Packagist ,Packagist 是 Composer 主要的一个包信息存储库,它默认是启用的

"repositories": [
        {"type": "composer", "url": "http://packagist.phpcomposer.com"},
        {"packagist": false}
]

composer.json配置文件说明

参考 库(资源包)

所有在 composer.json 中可用的字段

命令列表

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注