2

我有一个 Symfony 2.3 项目,我想使用自定义供应商。我知道在 Symfony 2.1 和 2.2 版本中,您可以在deps文件中声明供应商。

但是如何在 Symfony 2.3 项目中声明自定义供应商?有一个composer.json文件,但我不太明白它是如何工作的。

编辑
自定义供应商的代码位于 github 上。

4

1 回答 1

5

composer.jsoncomposer通过工具(您应该已经安装)管理依赖项。它的行为类似于npm您是否完全使用过它。

您可以通过多种方式包含自定义供应商 - 尽管要(自动)加载和拾取自定义供应商代码composer需要有一个composer.json文件。

包装师

如果自定义供应商已成功将其提交给packagegist,那么您的生活就很简单了,您可以搜索它并记下名称(<vendor>/<package>格式为 .

打开您的composer.json文件并在"require": {}声明的末尾添加您的供应商。例如,如果我们的包被调用peterjmit/awesome-package

// ...
"require": {
  // ...
  "peterjmit/awesome-package": "*"
},
// ...

*如果您愿意,可以将 替换为版本号。完成后,您可以运行composer update命令来拉入新包。如果您只想更新新包,您可以使用composer update peterjmit/awesome-package.

感谢作曲家自动加载器和PSR-0标准,包中的类是自动加载的,因此您无需执行其他“管道”操作。

VCS 存储库

如果自定义供应商不在 packagist 上,但确实有一个composer.json文件,那么您可以为 composer 指定一个自定义存储库。你需要有require和以前一样的语句,但是你需要添加一个新的语句composer.json

// ...
"require": {
  // ...
  "peterjmit/awesome-package": "*"
},
"repositories": [
  {
    "type": "vcs",
    "url": "git@bitbucket.org:peterjmit/awesome-package.git"
  },
  // .. etc.

如果包没有composer.json那么你可以随时 fork 并添加你自己的。但是,如果代码不符合 PSR-0,那么您将不得不为包整理自己的自动加载策略。

于 2013-07-03T14:17:13.493 回答