Symfony2.3 - 如何添加自定义供应商

时间:2013-07-03 13:35:19

标签: php symfony vendor symfony-2.3

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

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

修改
自定义供应商的代码位于github上。

1 个答案:

答案 0 :(得分:5)

composer.json通过composer工具(您应该拥有installed)来管理相关性。如果您完全使用它,它的行为与npm类似。

您可以通过多种方式添加自定义供应商 - 尽管自定义供应商代码可以(自动)加载&由composer选中,需要有composer.json个文件。

Packagist

如果自定义供应商已成功将其提交至packagist,那么您的生活很轻松,您可以搜索它并记下名称(<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,那么您可以随时分叉并添加自己的。但如果代码不符合PSR-0,那么你将不得不为包装找出自己的自动加载策略。