Composer 是 PHP 的一个依赖管理工具。它容许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
《Composer 中文网》php
运行 Composer 须要 PHP 5.3.2+ 以上版本。
Composer 是多平台的,它能够同时在 Windows 、 Linux 以及 OSX 平台上运行。json
curl -sS https://getcomposer.org/installer | php mv composer.phar mv composer.phar /usr/local/bin/composer
注:若是没有安装curl,能够经过如下命令安装
apt-get update apt-get install curl
当你的 Composer 安装完毕以后,你能够实用下列命令查看是否安装成功ubuntu
composer -v
注 若是上述方法因为某些缘由失败了,你还能够经过 php 下载安装器:
php -r "readfile('https://getcomposer.org/installer');" | php
这将检查一些 PHP 的设置,而后下载 composer.phar
到你的工做目录中。这是 Composer 的二进制文件。这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式能够帮助用户在命令行中执行一些操做。segmentfault
你能够经过 --install-dir
选项指定 Composer 的安装目录(它能够是一个绝对或相对路径)windows
要开始在你的项目中使用 Composer,你只须要一个 composer.json
文件。该文件包含了项目的依赖和其它的一些元数据。app
首先建立一个 composer.json
文件,写入相应的包名和版本号,如composer
{ "require": { "monolog/monolog": "1.13.*" } }
这是后就写入了一个依赖包,以后安装依赖包。获取定义的依赖到你的本地项目,以后在你的项目目录中(即 composer.json
所在目录)使用 Composer 运行 install
命令。curl
composer install
固然,若是是在 Windows
系统中,也能够经过调用 composer.phar
包来进行依赖包的安装。函数
php composer.phar install
执行 composer install
,就进入自动安装,安装完成后会生成一个 composer.lock
文件,里面是特定的版本号名,须要这个文件和 composer.json
一块儿提交到版本管理里去。工具
最后,在须要更新依赖包的时候,可使用如下命令
composer update
若是只想更新部分依赖
composer update monolog/monolog
对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php
文件。你能够在你项目的入口文件中引入它
<?php require __DIR__ . '/vendor/autoload.php'; ?>
这使得你能够很容易的使用第三方代码。例如:若是你的项目依赖 monolog,你就能够像这样开始使用这个类库,而且他们将被自动加载。
<?php require __DIR__ . '/vendor/autoload.php'; $log = new Monolog\Logger('name'); $log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->addWarning('Foo'); ?>
因为墙的问题,因此会致使 Composer 的国外镜像常常没法正常的 install
,因此推荐使用国内的镜像,使用方式以下
有两种方式启用本镜像服务:
方法一: 修改 composer 的全局配置文件
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行以下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
方法二: 修改当前项目的 composer.json
配置文件:
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json
文件所在目录),执行以下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
上述命令将会在当前项目中的 composer.json
文件的末尾自动添加镜像的配置信息(你也能够本身手工添加):
"repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } }
Composer 除了能够帮你安装所须要的依赖包之外,还能够实现自动加载命名空间的功能,当咱们本身编写的函数库与类库须要自动加载时,咱们就能够经过 composer.json
来实现。它相似于 php 中的 spl_autoload_register()
, 其实若是你去查看 Composer 中的源代码,你会看到它的自动加载功能也是用了 spl_autoload_register()
这个函数。《具体可看此文章详细介绍》
咱们在 composer.json
里添加以下代码:
{ "autoload": { "psr-4": { "Test\\": "test/", "Testtwo\\": "testtwo/" } } }
这个配置文件中有一个 autoload 段,其中有个 《PSR-4》,psr-4 是一个基于 psr-4 规则的类库自动加载对应关系,只要在其后的对象中,以 ”命名空间“: “路径” 的方式写入本身的类库信息修改完成后,以后,在执行下列命令,便可完成自动加载。
composer dumpautoload
注:"psr-4": {"Test\\": "test/"}
中的 "test/" 路径为相对于composer.json
的路径
这个时候,你就能够调用你本身编写的函数库或者类库了
<?php require __DIR__ . '/vendor/autoload.php'; $testClass = new \Test\Testclass(); ?>
注:本文内容参考了 《Composer 中文网》,后续还会更新 Composer 其它的实用功能