• [问题求助] composer 安装后php SDK 下载的目录找不到
    【功能模块】composer  php SDK 安装【操作步骤&问题现象】1、composer require huaweicloud/huaweicloud-sdk-php:3.0.54-rc 安装完成后如下图:1  图:2  代码中的依赖库 sdk 文件加载不上HuaweiCloud\SDK\ 这个文件夹加载不上是哪里没有配置好吗?【截图信息】图:1图:2【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【OBS】【安装SDK】composer无法安装
    【功能模块】安装SDK【操作步骤&问题现象】php版本7.4  composer版本2.3.51、运行composer require obs/esdk-obs-php执行安装。【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【SDK for PHP】composer 安装报错
    composer require obs/esdk-obs-php Using version ^3.21 for obs/esdk-obs-php ./composer.json has been updated Running composer update obs/esdk-obs-php Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires obs/esdk-obs-php ^3.21 -> satisfiable by obs/esdk-obs-php[3.21.6]. - obs/esdk-obs-php 3.21.6 requires guzzlehttp/guzzle 6.3.0 -> found guzzlehttp/guzzle[6.3.0] but it conflicts with your root composer.json require (^7.0.1). Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions. Installation failed, reverting ./composer.json and ./composer.lock to their original content.这个问题存在好久了,好多新项目中使用不了SDK,麻烦尽快升级下 guzzlehttp/guzzle 版本吧!
  • [交流吐槽] 希望增加 composer 源和 Rocky Linux 源
    希望增加 composer 源和 Rocky Linux 源
  • [问题求助] 华为镜像站的 composer php镜像关闭了吗?
    请问,华为镜像站的 composer php镜像关闭了吗?在列表里面没有看到这个镜像了啊。
  • [问题求助] 开源镜像站 Composer 镜像问题
    Composer 镜像包不全,更新不及时。
  • php composer 停止更新了?
    9月4号后就没有更新,能尽快处理下不?
  • PHP composer 镜像404错误
    https://repo.huaweicloud.com/repository/php/ 这个网址404错误!麻烦处理一下哦 !
  • Composer工作原理揭秘
    本帖最后由 华为开源镜像站 于 2017-11-18 17:49 编辑Composer工作原理揭秘 基本用法[hr] [*]基本用法 [*]安装 [*]composer.json:项目安装 [*]关于 require Key [*]包名称 [*]包版本 [*]下一个重要版本(波浪号运算符) [*]稳定性 [*]安装依赖包 [*]composer.lock - 锁文件 [*]Packagist [*]自动加载 [hr] 安装安装 Composer,你只需要下载 composer.phar 可执行文件。curl -sS https://getcomposer.org/installer | php详细请查看 简介 章节。要检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表。[indent]注意: 你也可以仅执行 --check 选项而无需下载 Composer。 要获取更多的信息请使用 --help。curl -sS https://getcomposer.org/installer | php -- --help[/indent] composer.json:项目安装要开始在你的项目中使用 Composer,你只需要一个 composer.json 文件。该文件包含了项目的依赖和其它的一些元数据。这个 JSON format 是很容易编写的。它允许你定义嵌套结构。 关于 require Key第一件事情(并且往往只需要做这一件事),你需要在 composer.json 文件中指定 require key 的值。你只需要简单的告诉 Composer 你的项目需要依赖哪些包。[code]{ "require": { "monolog/monolog":"1.0.*" } }[/code] 你可以看到, require 需要一个 包名称 (例如 monolog/monolog) 映射到 包版本 (例如 1.0.*) 的对象。 包名称包名称由供应商名称和其项目名称构成。通常容易产生相同的项目名称,而供应商名称的存在则很好的解决了命名冲突的问题。它允许两个不同的人创建同样名为 json 的库,而之后它们将被命名为 igorw/json 和 seldaek/json。这里我们需要引入 monolog/monolog,供应商名称与项目的名称相同,对于一个具有唯一名称的项目,我们推荐这么做。它还允许以后在同一个命名空间添加更多的相关项目。如果你维护着一个库,这将使你可以很容易的把它分离成更小的部分。 包版本在前面的例子中,我们引入的 monolog 版本指定为 1.0.*。这表示任何从 1.0 开始的开发分支,它将会匹配 1.0.0、1.0.2 或者 1.0.20。版本约束可以用几个不同的方法来指定。名称实例描述确切的版本号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。想要了解更多,请阅读下一小节。下一个重要版本(波浪号运算符)~ 最好用例子来解释: ~1.2 相当于 >=1.2,2.0,而 ~1.2.3 相当于 >=1.2.3,1.3。正如你所看到的这对于遵循 语义化版本号 的项目最有用。一个常见的用法是标记你所依赖的最低版本,像 ~1.2 (允许1.2以上的任何版本,但不包括2.0)。由于理论上直到2.0应该都没有向后兼容性问题,所以效果很好。你还会看到它的另一种用法,使用 ~ 指定最低版本,但允许版本号的最后一位数字上升。[indent]注意: 虽然 2.0-beta.1 严格地说是早于 2.0,但是,根据版本约束条件, 例如 ~1.2 却不会安装这个版本。就像前面所讲的 ~1.2 只意味着 .2 部分可以改变,但是 1. 部分是固定的。[/indent] 稳定性默认情况下只有稳定的发行版才会被考虑在内。如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用 稳定标志。你可以对所有的包做 最小稳定性 设置,而不是每个依赖逐一设置。 安装依赖包获取定义的依赖到你的本地项目,只需要调用 composer.phar 运行 install 命令。php composer.phar install接着前面的例子,这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录。 这是一个惯例把第三方的代码到一个指定的目录 vendor。如果是 monolog 将会创建 vendor/monolog/monolog 目录。[indent]小技巧: 如果你正在使用Git来管理你的项目, 你可能要添加 vendor 到你的 .gitignore 文件中。 你不会希望将所有的代码都添加到你的版本库中。[/indent]另一件事是 install 命令将创建一个 composer.lock 文件到你项目的根目录中。 composer.lock - 锁文件在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中这是非常重要的,因为 install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。这意味着,任何人建立项目都将下载与指定版本完全相同的依赖。你的持续集成服务器、生产环境、你团队中的其他开发人员、每件事、每个人都使用相同的依赖,从而减轻潜在的错误对部署的影响。即使你独自开发项目,在六个月内重新安装项目时,你也可以放心的继续工作,即使从那时起你的依赖已经发布了许多新的版本。如果不存在 composer.lock 文件,Composer 将读取 composer.json 并创建锁文件。这意味着如果你的依赖更新了新的版本,你将不会获得任何更新。此时要更新你的依赖版本请使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。php composer.phar update如果只想安装或更新一个依赖,你可以白名单它们:php composer.phar update monolog/monolog [...][indent]注意: 对于库,并不一定建议提交锁文件 请参考:库的锁文件.[/indent] Packagistpackagist 是 Composer 的主要资源库。 一个 Composer 的库基本上是一个包的源:记录了可以得到包的地方。Packagist 的目标是成为大家使用库资源的中央存储平台。这意味着你可以 require 那里的任何包。当你访问 packagist website (packagist.org),你可以浏览和搜索资源包。任何支持 Composer 的开源项目应该发布自己的包在 packagist 上。虽然并不一定要发布在 packagist 上来使用 Composer,但它使我们的编程生活更加轻松。 自动加载对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。require ´vendor/autoload.php´;这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。$log = new Monolog\Logger(´name´);$log-[color=rgb(166, 127, 89)>pushHandler(new Monolog\Handler\StreamHandler(´app.log´, Monolog\Logger::WARNING));$log-[color=rgb(166, 127, 89)>addWarning(´Foo´);你可以在 composer.json 的 autoload 字段中增加自己的 autoloader。 [code]{ "autoload": { "psr-4": { "Acme\\":"src/" } } }[/code] Composer 将注册一个 PSR-4 autoloader 到 Acme 命名空间。你可以定义一个从命名空间到目录的映射。此时 src 会在你项目的根目录,与 vendor 文件夹同级。例如 src/Foo.php 文件应该包含 Acme\Foo 类。添加 autoload 字段后,你应该再次运行 install 命令来生成 vendor/autoload.php 文件。引用这个文件也将返回 autoloader 的实例,你可以将包含调用的返回值存储在变量中,并添加更多的命名空间。这对于在一个测试套件中自动加载类文件是非常有用的,例如。$loader = require ´vendor/autoload.php´;$loader-[color=rgb(166, 127, 89)>add(´Acme\\Test\\´, __DIR__);除了 PSR-4 自动加载,classmap 也是支持的。这允许类被自动加载,即使不符合 PSR-0 规范。详细请查看 自动加载-参考。[indent]注意: Composer 提供了自己的 autoloader。如果你不想使用它,你可以仅仅引入 vendor/composer/autoload_*.php 文件,它返回一个关联数组,你可以通过这个关联数组配置自己的 autoloader。[/indent]
  • Composer常用命令介绍
    本帖最后由 DevCloud 于 2017-11-16 16:05 编辑 Composer常用命令介绍 为了从命令行获得帮助信息,请运行 composer 或者 composer list 命令,然后结合 --help 命令来获得更多的帮助信息。[hr] [*]命令行 [*]全局参数 [*]进程退出代码 [*]初始化 init - - 参数 [*]安装 install - - 参数 [*]更新 update - - 参数 [*]申明依赖 require - - 参数 [*]全局执行 global [*]搜索 search - - 参数 [*]展示 show - - 参数 [*]依赖性检测 depends - - 参数 [*]有效性检测 validate [*]依赖包状态检测 status [*]自我更新 self-update - - 参数 [*]更改配置 config - - 使用方法 - - 参数 - - 修改包来源 [*]创建项目 create-project - - 参数 [*]打印自动加载索引 dump-autoload - - 参数 [*]查看许可协议 licenses [*]执行脚本 run-script [*]诊断 diagnose [*]归档 archive - - 参数 [*]获取帮助信息 help [*]环境变量 [*]COMPOSER [*]COMPOSER_ROOT_VERSION [*]COMPOSER_VENDOR_DIR [*]COMPOSER_BIN_DIR [*]http_proxy or HTTP_PROXY [*]no_proxy [*]HTTP_PROXY_REQUEST_FULLURI [*]HTTPS_PROXY_REQUEST_FULLURI [*]COMPOSER_HOME [*]COMPOSER_HOME/config.json [*]COMPOSER_CACHE_DIR [*]COMPOSER_PROCESS_TIMEOUT [*]COMPOSER_DISCARD_CHANGES [*]COMPOSER_NO_INTERACTION [hr] 全局参数下列参数可与每一个命令结合使用: [*]--verbose (-v): 增加反馈信息的详细度。 [*]-v 表示正常输出。 [*]-vv 表示更详细的输出。 [*]-vvv 则是为了 debug。 [*]--help (-h): 显示帮助信息。 [*]--quiet (-q): 禁止输出任何信息。 [*]--no-interaction (-n): 不要询问任何交互问题。 [*]--working-dir (-d): 如果指定的话,使用给定的目录作为工作目录。 [*]--profile: 显示时间和内存使用信息。 [*]--ansi: 强制 ANSI 输出。 [*]--no-ansi: 关闭 ANSI 输出。 [*]--version (-V): 显示当前应用程序的版本信息。 进程退出代码 [*]0: 正常 [*]1: 通用/未知错误 [*]2: 依赖关系处理错误 初始化 init在 “库” 那一章我们看到了如何手动创建 composer.json 文件。实际上还有一个 init 命令可以更容易的做到这一点。当您运行该命令,它会以交互方式要求您填写一些信息,同时聪明的使用一些默认值。php composer.phar init 初始化-参数 [*]--name: 包的名称。 [*]--description: 包的描述。 [*]--author: 包的作者。 [*]--homepage: 包的主页。 [*]--require: 需要依赖的其它包,必须要有一个版本约束。并且应该遵循 foo/bar:1.0.0 这样的格式。 [*]--require-dev: 开发版的依赖包,内容格式与 --require 相同。 [*]--stability (-s): minimum-stability 字段的值。 安装 installinstall 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。php composer.phar install如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。 安装-参数 [*]--prefer-source: 下载包的方式有两种: source 和 dist。对于稳定版本 composer 将默认使用 dist方式。而 source 表示版本控制源 。如果 --prefer-source 是被启用的,composer 将从 source 安装(如果有的话)。如果想要使用一个 bugfix 到你的项目,这是非常有用的。并且可以直接从本地的版本库直接获取依赖关系。 [*]--prefer-dist: 与 --prefer-source 相反,composer 将尽可能的从 dist 获取,这将大幅度的加快在 build servers 上的安装。这也是一个回避 git 问题的途径,如果你不清楚如何正确的设置。 [*]--dry-run: 如果你只是想演示而并非实际安装一个包,你可以运行 --dry-run 命令,它将模拟安装并显示将会发生什么。 [*]--dev: 安装 require-dev 字段中列出的包(这是一个默认值)。 [*]--no-dev: 跳过 require-dev 字段中列出的包。 [*]--no-scripts: 跳过 composer.json 文件中定义的脚本。 [*]--no-plugins: 关闭 plugins。 [*]--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。 [*]--optimize-autoloader (-o): 转换 PSR-0/4 autoloading 到 classmap 可以获得更快的加载支持。特别是在生产环境下建议这么做,但由于运行需要一些时间,因此并没有作为默认值。 更新 update为了获取依赖的最新版本,并且升级 composer.lock 文件,你应该使用 update 命令。php composer.phar update这将解决项目的所有依赖,并将确切的版本号写入 composer.lock。如果你只是想更新几个包,你可以像这样分别列出它们:php composer.phar update vendor/package vendor/package2你还可以使用通配符进行批量更新:php composer.phar update vendor/* 更新-参数 [*]--prefer-source: 当有可用的包时,从 source 安装。 [*]--prefer-dist: 当有可用的包时,从 dist 安装。 [*]--dry-run: 模拟命令,并没有做实际的操作。 [*]--dev: 安装 require-dev 字段中列出的包(这是一个默认值)。 [*]--no-dev: 跳过 require-dev 字段中列出的包。 [*]--no-scripts: 跳过 composer.json 文件中定义的脚本。 [*]--no-plugins: 关闭 plugins。 [*]--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。 [*]--optimize-autoloader (-o): 转换 PSR-0/4 autoloading 到 classmap 可以获得更快的加载支持。特别是在生产环境下建议这么做,但由于运行需要一些时间,因此并没有作为默认值。 [*]--lock: 仅更新 lock 文件的 hash,取消有关 lock 文件过时的警告。 [*]--with-dependencies 同时更新白名单内包的依赖关系,这将进行递归更新。 申明依赖 requirerequire 命令增加新的依赖包到当前目录的 composer.json 文件中。php composer.phar require在添加或改变依赖时, 修改后的依赖关系将被安装或者更新。如果你不希望通过交互来指定依赖包,你可以在这条令中直接指明依赖包。php composer.phar require vendor/package:2.* vendor/package2:dev-master 申明依赖-参数 [*]--prefer-source: 当有可用的包时,从 source 安装。 [*]--prefer-dist: 当有可用的包时,从 dist 安装。 [*]--dev: 安装 require-dev 字段中列出的包。 [*]--no-update: 禁用依赖关系的自动更新。 [*]--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。 [*]--update-with-dependencies 一并更新新装包的依赖。 全局执行 globalglobal 命令允许你在 COMPOSER_HOME 目录下执行其它命令,像 install、require 或 update。并且如果你将 $COMPOSER_HOME/vendor/bin 加入到了 $PATH 环境变量中,你就可以用它在命令行中安装全局应用,下面是一个例子:php composer.phar global require fabpot/php-cs-fixer:dev-master现在 php-cs-fixer 就可以在全局范围使用了(假设你已经设置了你的 PATH)。如果稍后你想更新它,你只需要运行 global update:php composer.phar global update 搜索 searchsearch 命令允许你为当前项目搜索依赖包,通常它只搜索 packagist.org 上的包,你可以简单的输入你的搜索条件。php composer.phar search monolog您也可以通过传递多个参数来进行多条件搜索。 搜索-参数 [*]--only-name (-N): 仅针对指定的名称搜索(完全匹配)。 展示 show列出所有可用的软件包,你可以使用 show 命令。php composer.phar show如果你想看到一个包的详细信息,你可以输入一个包名称。php composer.phar show monolog/monologname : monolog/monologversions : master-dev, 1.0.2, 1.0.1, 1.0.0, 1.0.0-RC1type : librarynames : monolog/monologsource : [git] http://github.com/Seldaek/monolog.git 3d4e60d0cbc4b888fe5ad223d77964428b1978dadist : [zip] http://github.com/Seldaek/monolo ... 223d77964428b1978da 3d4e60d0cbc4b888fe5ad223d77964428b1978dalicense : MITautoloadpsr-0Monolog : src/requiresphp >=5.3.0你甚至可以输入一个软件包的版本号,来显示该版本的详细信息。php composer.phar show monolog/monolog 1.0.2 展示-参数 [*]--installed (-i): 列出已安装的依赖包。 [*]--platform (-p): 仅列出平台软件包(PHP 与它的扩展)。 [*]--self (-s): 仅列出当前项目信息。 依赖性检测 dependsdepends 命令可以查出已安装在你项目中的某个包,是否正在被其它的包所依赖,并列出他们。php composer.phar depends --link-type=require monolog/monolognrk/monolog-fluentpoc/pocpropel/propelsymfony/monolog-bridgesymfony/symfony 依赖性检测-参数 [*]--link-type: 检测的类型,默认为 require 也可以是 require-dev。 有效性检测 validate在提交 composer.json 文件,和创建 tag 前,你应该始终运行 validate 命令。它将检测你的 composer.json文件是否是有效的php composer.phar validate有效性检测参数 [*]--no-check-all: Composer 是否进行完整的校验。 依赖包状态检测 status如果你经常修改依赖包里的代码,并且它们是从 source(自定义源)进行安装的,那么 status 命令允许你进行检查,如果你有任何本地的更改它将会给予提示。php composer.phar status你可以使用 --verbose 系列参数(-v|vv|vvv)来获取更详细的详细:php composer.phar status -vYou have changes in the following dependencies:vendor/seld/jsonlint: M README.mdown 自我更新 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 自我更新-参数 [*]--rollback (-r): 回滚到你已经安装的最后一个版本。 [*]--clean-backups: 在更新过程中删除旧的备份,这使得更新过后的当前版本是唯一可用的备份。 更改配置 configconfig 命令允许你编辑 Composer 的一些基本设置,无论是本地的 composer.json 或者全局的 config.json文件。php composer.phar config --list 更改配置-使用方法config [options] [setting-key] [setting-value1] ... [setting-valueN]setting-key 是一个配置选项的名称,setting-value1 是一个配置的值。可以使用数组作为配置的值(像 github-protocols),多个 setting-value 是允许的。有效的配置选项,请查看“架构”章节的 config 。 更改配置-参数 [*]--global (-g): 操作位于 $COMPOSER_HOME/config.json 的全局配置文件。如果不指定该参数,此命令将影响当前项目的 composer.json 文件,或 --file 参数所指向的文件。 [*]--editor (-e): 使用文本编辑器打开 composer.json 文件。默认情况下始终是打开当前项目的文件。当存在 --global 参数时,将会打开全局 composer.json 文件。 [*]--unset: 移除由 setting-key 指定名称的配置选项。 [*]--list (-l): 显示当前配置选项的列表。当存在 --global 参数时,将会显示全局配置选项的列表。 [*]--file="..." (-f): 在一个指定的文件上操作,而不是 composer.json。注意:不能与 --global 参数一起使用。 修改包来源除了修改配置选项, config 命令还支持通过以下方法修改来源信息:php composer.phar config repositories.foo vcs http://github.com/foo/bar 创建项目 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 上查找你指定的包。 创建项目-参数 [*]--repository-url: 提供一个自定义的储存库来搜索包,这将被用来代替 packagist.org。可以是一个指向 composer 资源库的 HTTP URL,或者是指向某个 packages.json 文件的本地路径。 [*]--stability (-s): 资源包的最低稳定版本,默认为 stable。 [*]--prefer-source: 当有可用的包时,从 source 安装。 [*]--prefer-dist: 当有可用的包时,从 dist 安装。 [*]--dev: 安装 require-dev 字段中列出的包。 [*]--no-install: 禁止安装包的依赖。 [*]--no-plugins: 禁用 plugins。 [*]--no-scripts: 禁止在根资源包中定义的脚本执行。 [*]--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。 [*]--keep-vcs: 创建时跳过缺失的 VCS 。如果你在非交互模式下运行创建命令,这将是非常有用的。 打印自动加载索引 dump-autoload某些情况下你需要更新 autoloader,例如在你的包中加入了一个新的类。你可以使用 dump-autoload 来完成,而不必执行 install 或 update 命令。此外,它可以打印一个优化过的,符合 PSR-0/4 规范的类的索引,这也是出于对性能的可考虑。在大型的应用中会有许多类文件,而 autoloader 会占用每个请求的很大一部分时间,使用 classmaps 或许在开发时不太方便,但它在保证性能的前提下,仍然可以获得 PSR-0/4 规范带来的便利。 打印自动加载索引-参数 [*]--optimize (-o): 转换 PSR-0/4 autoloading 到 classmap 获得更快的载入速度。这特别适用于生产环境,但可能需要一些时间来运行,因此它目前不是默认设置。 [*]--no-dev: 禁用 autoload-dev 规则。 查看许可协议 licenses列出已安装的每个包的名称、版本、许可协议。可以使用 --format=json 参数来获取 JSON 格式的输出。 执行脚本 run-script你可以运行此命令来手动执行 脚本,只需要指定脚本的名称,可选的 --no-dev 参数允许你禁用开发者模式。 诊断 diagnose如果你觉得发现了一个 bug 或是程序行为变得怪异,你可能需要运行 diagnose 命令,来帮助你检测一些常见的问题。php composer.phar diagnose 归档 archive此命令用来对指定包的指定版本进行 zip/tar 归档。它也可以用来归档你的整个项目,不包括 excluded/ignored(排除/忽略)的文件。php composer.phar archive vendor/package 2.0.21 --format=zip 归档-参数 [*]--format (-f): 指定归档格式:tar 或 zip(默认为 tar)。 [*]--dir: 指定归档存放的目录(默认为当前目录)。 获取帮助信息 help使用 help 可以获取指定命令的帮助信息。php composer.phar help install 环境变量你可以设置一些环境变量来覆盖默认的配置。建议尽可能的在 composer.json 的 config 字段中设置这些值,而不是通过命令行设置环境变量。值得注意的是环境变量中的值,将始终优先于 composer.json 中所指定的值。 COMPOSER环境变量 COMPOSER 可以为 composer.json 文件指定其它的文件名。例如:COMPOSER=composer-other.json php composer.phar install COMPOSER_ROOT_VERSION通过设置这个环境变量,你可以指定 root 包的版本,如果程序不能从 VCS 上猜测出版本号,并且未在 composer.json 文件中申明。 COMPOSER_VENDOR_DIR通过设置这个环境变量,你可以指定 composer 将依赖安装在 vendor 以外的其它目录中。 COMPOSER_BIN_DIR通过设置这个环境变量,你可以指定 bin(Vendor Binaries)目录到 vendor/bin 以外的其它目录。 http_proxy or HTTP_PROXY如果你是通过 HTTP 代理来使用 Composer,你可以使用 http_proxy 或 HTTP_PROXY 环境变量。只要简单的将它设置为代理服务器的 URL。许多操作系统已经为你的服务设置了此变量。建议使用 http_proxy(小写)或者两者都进行定义。因为某些工具,像 git 或 curl 将使用 http_proxy 小写的版本。另外,你还可以使用 git config --global http.proxy 来单独设置 git 的代理。 no_proxy如果你是使用代理服务器,并且想要对某些域名禁用代理,就可以使用 no_proxy 环境变量。只需要输入一个逗号相隔的域名 排除 列表。此环境变量接受域名、IP 以及 CIDR地址块。你可以将它限制到一个端口(例如::80)。你还可以把它设置为 * 来忽略所有的 HTTP 代理请求。 HTTP_PROXY_REQUEST_FULLURI如果你使用了 HTTP 代理,但它不支持 request_fulluri 标签,那么你应该设置这个环境变量为 false 或 0,来防止 composer 从 request_fulluri 读取配置。 HTTPS_PROXY_REQUEST_FULLURI如果你使用了 HTTPS 代理,但它不支持 request_fulluri 标签,那么你应该设置这个环境变量为 false 或 0 ,来防止 composer 从 request_fulluri 读取配置。 COMPOSER_HOMECOMPOSER_HOME 环境变量允许你改变 Composer 的主目录。这是一个隐藏的、所有项目共享的全局目录(对本机的所有用户都可用)。它在各个系统上的默认值分别为: [*]*nix /home//.composer。 [*]OSX /Users//.composer。 [*]Windows C:\Users\\AppData\Roaming\Composer。 COMPOSER_HOME/config.json你可以在 COMPOSER_HOME 目录中放置一个 config.json 文件。在你执行 install 和 update 命令时,Composer 会将它与你项目中的 composer.json 文件进行合并。该文件允许你为用户的项目设置 配置信息 和 资源库。若 全局 和 项目 存在相同配置项,那么项目中的 composer.json 文件拥有更高的优先级。 COMPOSER_CACHE_DIRCOMPOSER_CACHE_DIR 环境变量允许你设置 Composer 的缓存目录,这也可以通过 cache-dir 进行配置。它在各个系统上的默认值分别为: [*]*nix and OSX $COMPOSER_HOME/cache。 [*]Windows C:\Users\\AppData\Local\Composer 或 %LOCALAPPDATA%/Composer。 COMPOSER_PROCESS_TIMEOUT这个环境变量控制着 Composer 执行命令的等待时间(例如:git 命令)。默认值为300秒(5分钟)。 COMPOSER_DISCARD_CHANGES这个环境变量控制着 discard-changes config option。 COMPOSER_NO_INTERACTION如果设置为1,这个环境变量将使 Composer 在执行每一个命令时都放弃交互,相当于对所有命令都使用了 --no-interaction。可以在搭建 虚拟机/持续集成服务器 时这样设置。
  • Composer工具安装配置教程
    本帖最后由 华为开源镜像站 于 2017-11-18 17:54 编辑Composer工具安装配置教程 简介Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 [hr] [*]简介 [*]依赖管理 [*]声明依赖关系 [*]系统要求 [*]安装 - *nix [*]下载 Composer 的可执行文件 [*]局部安装 [*]全局安装 [*]全局安装 (on OSX via homebrew) [*]安装 - Windows [*]使用安装程序 [*]手动安装 [*]使用 Composer [*]自动加载 [hr] 依赖管理Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。 这种想法并不新鲜,Composer 受到了 node´s npm 和 ruby´s bundler 的强烈启发。而当时 PHP 下并没有类似的工具。 Composer 将这样为你解决问题: a) 你有一个项目依赖于若干个库。 b) 其中一些库依赖于其他库。 c) 你声明你所依赖的东西。 d) Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。 声明依赖关系比方说,你正在创建一个项目,你需要一个库来做日志记录。你决定使用 monolog。为了将它添加到你的项目中,你所需要做的就是创建一个 composer.json 文件,其中描述了项目的依赖关系。 [code]{ "require": { "monolog/monolog":"1.2.*" } }[/code] 我们只要指出我们的项目需要一些 monolog/monolog 的包,从 1.2 开始的任何版本。 系统要求运行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。 我们将从包的来源直接安装,而不是简单的下载 zip 文件,你需要 git 、 svn 或者 hg ,这取决于你载入的包所使用的版本管理系统。 Composer 是多平台的,我们努力使它在 Windows 、 Linux 以及 OSX 平台上运行的同样出色。 安装 - *nix 下载 Composer 的可执行文件 局部安装要真正获取 Composer,我们需要做两件事。首先安装 Composer (同样的,这意味着它将下载到你的项目中): curl -sS https://getcomposer.org/installer | php[indent]注意: 如果上述方法由于某些原因失败了,你还可以通过 php >下载安装器: [/indent]php -r "readfile(´https://getcomposer.org/installer´);" | php这将检查一些 PHP 的设置,然后下载 composer.phar 到你的工作目录中。这是 Composer 的二进制文件。这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式可以帮助用户在命令行中执行一些操作。 你可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径): curl -sS https://getcomposer.org/installer | php -- --install-dir=bin 全局安装你可以将此文件放在任何地方。如果你把它放在系统的 PATH 目录中,你就能在全局访问它。 在类Unix系统中,你甚至可以在使用时不加 php 前缀。 你可以执行这些命令让 composer 在你的系统中进行全局调用: curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer[indent]注意: 如果上诉命令因为权限执行失败, 请使用 sudo 再次尝试运行 mv 那行命令。 [/indent]现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar。 全局安装 (on OSX via homebrew)Composer 是 homebrew-php 项目的一部分。 brew updatebrew tap josegonzalez/homebrew-phpbrew tap homebrew/versionsbrew install php55-intlbrew install josegonzalez/php/composer 安装 - Windows 使用安装程序这是将 Composer 安装在你机器上的最简单的方法。 下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ,并设置好系统的环境变量,因此你可以在任何目录下直接使用 composer 命令。 手动安装设置系统的环境变量 PATH 并运行安装命令下载 composer.phar 文件: C:\Users\username>cd C:\binC:\bin>php -r "readfile(´https://getcomposer.org/installer´);" | php[indent]注意: 如果收到 readfile 错误提示,请使用 http 链接或者在 php.ini 中开启 php_openssl.dll 。 [/indent]在 composer.phar 同级目录下新建文件 composer.bat : C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat关闭当前的命令行窗口,打开新的命令行窗口进行测试: C:\Users\username>composer -VComposer version 27d8904 使用 Composer现在我们将使用 Composer 来安装项目的依赖。如果在当前目录下没有一个 composer.json 文件,请查看基本用法章节。 要解决和下载依赖,请执行 install 命令: php composer.phar install如果你进行了全局安装,并且没有 phar 文件在当前目录,请使用下面的命令代替: composer install继续 上面的例子,这里将下载 monolog 到 vendor/monolog/monolog 目录。 自动加载除了库的下载,Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中: require ´vendor/autoload.php´;现在我们就可以使用 monolog 了! composer的中文官方文档地址为:https://docs.phpcomposer.com/00-intro.html composer的英文官方文档地址为:https://getcomposer.org/doc/00-intro.md