|
|
(未显示同一用户的25个中间版本) |
第1行: |
第1行: |
− | ==简介==
| + | [[Composer官方文档]] |
− | | + | |
− | Composer是PHP的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
| + | |
− | | + | |
− | Composer在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。
| + | |
− | | + | |
− | 除了库的下载,Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中:
| + | |
− | | + | |
− | <source lang="php">
| + | |
− | require 'vendor/autoload.php';
| + | |
− | </source>
| + | |
− | | + | |
− | ==安装==
| + | |
− | | + | |
− | <source lang="bash">
| + | |
− | curl -sS https://getcomposer.org/installer | php
| + | |
− | mv composer.phar /usr/local/bin/composer
| + | |
− | </source>
| + | |
− | | + | |
− | 现在只需要运行composer命令就可以使用Composer而不需要输入php composer.phar。
| + | |
− | | + | |
− | ==基本用法==
| + | |
− | | + | |
− | 要开始在你的项目中使用 Composer,你只需要一个 composer.json 文件。
| + | |
− | | + | |
− | ===包版本===
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |-
| + | |
− | !名称
| + | |
− | !实例
| + | |
− | !描述
| + | |
− | |-
| + | |
− | |确切的版本号||1.0.2||你可以指定包的确切版本。
| + | |
− | |-
| + | |
− | |范围 ||>=1.0
| + | |
− | | + | |
− | >=1.0,<2.0
| + | |
− | | + | |
− | >=1.0,<1.1<nowiki>|</nowiki>>=1.2
| + | |
− | ||通过使用比较操作符可以指定有效的版本范围。 有效的运算符:>、>=、<、<=、!=。
| + | |
− | 你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。
| + | |
− | | + | |
− | AND的优先级高于OR。
| + | |
− | |-
| + | |
− | |通配符||1.0.* ||你可以使用通配符*来指定一种模式。1.0.*与>=1.0,<1.1是等效的。
| + | |
− | |-
| + | |
− | |赋值运算符||~1.2||下一个重要版本(波浪号运算符)。~1.2相当于>=1.2,<2.0。
| + | |
− | |}
| + | |
− | | + | |
− | ===安装依赖包===
| + | |
− | | + | |
− | 获取定义的依赖到你的本地项目,只需要调用install命令。
| + | |
− | | + | |
− | <source lang="bash">
| + | |
− | php composer.phar install
| + | |
− | </source>
| + | |
− | | + | |
− | 接着前面的例子,这将会找到monolog/monolog的最新版本,并将它下载到vendor目录。
| + | |
− | | + | |
− | 小技巧: 如果你正在使用Git来管理你的项目, 你可能要添加vendor到你的.gitignore文件中。 你不会希望将所有的代码都添加到你的版本库中。
| + | |
− | | + | |
− | 另一件事是install命令将创建一个composer.lock文件到你项目的根目录中。
| + | |
− | | + | |
− | ===composer.lock - 锁文件===
| + | |
− | | + | |
− | 在安装依赖后,Composer将把安装时确切的版本号列表写入composer.lock文件。
| + | |
− | | + | |
− | ;;请提交你应用程序的 composer.lock(包括composer.json)到你的版本库中
| + | |
− | | + | |
− | 这是非常重要的,因为install命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略composer.json文件中的定义)。
| + | |
− | | + | |
− | 这意味着,任何人建立项目都将下载与指定版本完全相同的依赖。你的持续集成服务器、生产环境、你团队中的其他开发人员、每件事、每个人都使用相同的依赖,从而减轻潜在的错误对部署的影响。即使你独自开发项目,在六个月内重新安装项目时,你也可以放心的继续工作,即使从那时起你的依赖已经发布了许多新的版本。
| + | |
− | | + | |
− | 如果不存在composer.lock文件,Composer将读取composer.json并创建锁文件。
| + | |
− | | + | |
− | 要更新你的依赖版本请使用update命令。这将获取最新匹配的版本(根据你的composer.json文件)并将新版本更新进锁文件。
| + | |
− | | + | |
− | <source lang="bash">
| + | |
− | php composer.phar update
| + | |
− | </source>
| + | |
− | | + | |
− | 如果只想安装或更新一个依赖,你可以白名单它们:
| + | |
− | | + | |
− | <source lang="bash">
| + | |
− | php composer.phar update monolog/monolog [...]
| + | |
− | </source>
| + | |
| | | |
| ==使用问题== | | ==使用问题== |
表面原因是phpunit的版本号使用了^,而composer不支持,导致更新失败。在2014年12月composer已经添加了对^的支持,PHPUnit从2015年1月开始使用^,一次更新一下composer的版本即可解决问题。
composer版本太老了,执行下面命令进行更新。
$sudo composer self-update #权限足够可以不加sudo
#安装组件
composer require predis/predis