“Composer”的版本间的差异

来自tomtalk
跳转至: 导航搜索
基本用法
Tom讨论 | 贡献
命令行
第87行: 第87行:
  
 
==命令行==
 
==命令行==
 +
 +
===安装install===
 +
 +
install 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。
 +
 +
php composer.phar install
 +
 +
如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。
 +
 +
如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。
 +
 +
===更新update===
 +
 +
为了获取依赖的最新版本,并且升级 composer.lock 文件,你应该使用 update 命令。
 +
 +
php composer.phar update
 +
这将解决项目的所有依赖,并将确切的版本号写入 composer.lock。
 +
 +
如果你只是想更新几个包,你可以像这样分别列出它们:
 +
 +
php composer.phar update vendor/package vendor/package2
 +
你还可以使用通配符进行批量更新:
 +
 +
php composer.phar update vendor/*
 +
 +
 +
===申明依赖 require===
 +
 +
require 命令增加新的依赖包到当前目录的 composer.json 文件中。
 +
 +
php composer.phar require
 +
在添加或改变依赖时, 修改后的依赖关系将被安装或者更新。
 +
 +
如果你不希望通过交互来指定依赖包,你可以在这条令中直接指明依赖包。
 +
 +
php composer.phar require vendor/package:2.* vendor/package2:dev-master
 +
 +
===自我更新 self-update===
 +
 +
将 Composer 自身升级到最新版本,只需要运行 self-update 命令。它将替换你的 composer.phar 文件到最新版本。
 +
 +
php composer.phar self-update
 +
如果你想要升级到一个特定的版本,可以这样简单的指定它:
 +
 +
php composer.phar self-update 1.0.0-alpha7
 +
如果你已经为整个系统安装 Composer(参见 全局安装),你可能需要在 root 权限下运行它:
 +
 +
sudo composer self-update
 +
 +
===创建项目 create-project===
 +
 +
你可以使用 Composer 从现有的包中创建一个新的项目。这相当于执行了一个 git clone 或 svn checkout 命令后将这个包的依赖安装到它自己的 vendor 目录。
 +
 +
此命令有几个常见的用途:
 +
 +
你可以快速的部署你的应用。
 +
你可以检出任何资源包,并开发它的补丁。
 +
多人开发项目,可以用它来加快应用的初始化。
 +
要创建基于 Composer 的新项目,你可以使用 "create-project" 命令。传递一个包名,它会为你创建项目的目录。你也可以在第三个参数中指定版本号,否则将获取最新的版本。
 +
 +
如果该目录目前不存在,则会在安装过程中自动创建。
 +
 +
php composer.phar create-project doctrine/orm path 2.2.*
 +
此外,你也可以无需使用这个命令,而是通过现有的 composer.json 文件来启动这个项目。
 +
 +
默认情况下,这个命令会在 packagist.org 上查找你指定的包。
  
 
==使用问题==
 
==使用问题==

2017年10月25日 (三) 06:43的版本

简介

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

Composer在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。

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

require 'vendor/autoload.php';

安装

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

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

基本用法

要开始在你的项目中使用 Composer,你只需要一个 composer.json 文件。

包版本

名称 实例 描述
确切的版本号 1.0.2 你可以指定包的确切版本。
范围 >=1.0

>=1.0,<2.0

>=1.0,<1.1|>=1.2

通过使用比较操作符可以指定有效的版本范围。 有效的运算符:>、>=、<、<=、!=。

你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。

AND的优先级高于OR。

通配符 1.0.* 你可以使用通配符*来指定一种模式。1.0.*与>=1.0,<1.1是等效的。
赋值运算符 ~1.2 下一个重要版本(波浪号运算符)。~1.2相当于>=1.2,<2.0。

安装依赖包

获取定义的依赖到你的本地项目,只需要调用install命令。

php composer.phar install

接着前面的例子,这将会找到monolog/monolog的最新版本,并将它下载到vendor目录。

小技巧: 如果你正在使用Git来管理你的项目, 你可能要添加vendor到你的.gitignore文件中。 你不会希望将所有的代码都添加到你的版本库中。

另一件事是install命令将创建一个composer.lock文件到你项目的根目录中。

composer.lock - 锁文件

在安装依赖后,Composer将把安装时确切的版本号列表写入composer.lock文件。

请提交你应用程序的 composer.lock(包括composer.json)到你的版本库中。install命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略composer.json文件中的定义)。

这意味着,任何人建立项目都将下载与指定版本完全相同的依赖。你的持续集成服务器、生产环境、你团队中的其他开发人员、每件事、每个人都使用相同的依赖,从而减轻潜在的错误对部署的影响。即使你独自开发项目,在六个月内重新安装项目时,你也可以放心的继续工作,即使从那时起你的依赖已经发布了许多新的版本。

如果不存在composer.lock文件,install命令将读取composer.json并创建锁文件。


要更新你的依赖版本请使用update命令。这将获取最新匹配的版本(根据你的composer.json文件)并将新版本更新进锁文件。

php composer.phar update

如果只想安装或更新一个依赖,你可以白名单它们:

php composer.phar update monolog/monolog [...]

命令行

安装install

install 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。

php composer.phar install

如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。

如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。

更新update

为了获取依赖的最新版本,并且升级 composer.lock 文件,你应该使用 update 命令。

php composer.phar update 这将解决项目的所有依赖,并将确切的版本号写入 composer.lock。

如果你只是想更新几个包,你可以像这样分别列出它们:

php composer.phar update vendor/package vendor/package2 你还可以使用通配符进行批量更新:

php composer.phar update vendor/*


申明依赖 require

require 命令增加新的依赖包到当前目录的 composer.json 文件中。

php composer.phar require 在添加或改变依赖时, 修改后的依赖关系将被安装或者更新。

如果你不希望通过交互来指定依赖包,你可以在这条令中直接指明依赖包。

php composer.phar require vendor/package:2.* vendor/package2:dev-master

自我更新 self-update

将 Composer 自身升级到最新版本,只需要运行 self-update 命令。它将替换你的 composer.phar 文件到最新版本。

php composer.phar self-update 如果你想要升级到一个特定的版本,可以这样简单的指定它:

php composer.phar self-update 1.0.0-alpha7 如果你已经为整个系统安装 Composer(参见 全局安装),你可能需要在 root 权限下运行它:

sudo composer self-update

创建项目 create-project

你可以使用 Composer 从现有的包中创建一个新的项目。这相当于执行了一个 git clone 或 svn checkout 命令后将这个包的依赖安装到它自己的 vendor 目录。

此命令有几个常见的用途:

你可以快速的部署你的应用。 你可以检出任何资源包,并开发它的补丁。 多人开发项目,可以用它来加快应用的初始化。 要创建基于 Composer 的新项目,你可以使用 "create-project" 命令。传递一个包名,它会为你创建项目的目录。你也可以在第三个参数中指定版本号,否则将获取最新的版本。

如果该目录目前不存在,则会在安装过程中自动创建。

php composer.phar create-project doctrine/orm path 2.2.* 此外,你也可以无需使用这个命令,而是通过现有的 composer.json 文件来启动这个项目。

默认情况下,这个命令会在 packagist.org 上查找你指定的包。

使用问题

Could not parse version constraint ^1.0: Invalid version string "^1.0"

表面原因是phpunit的版本号使用了^,而composer不支持,导致更新失败。在2014年12月composer已经添加了对^的支持,PHPUnit从2015年1月开始使用^,一次更新一下composer的版本即可解决问题。 composer版本太老了,执行下面命令进行更新。

$sudo composer self-update  #权限足够可以不加sudo

常用命令

#安装组件
composer require predis/predis