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

Mil*_*loš 2 php vendor symfony symfony-2.3

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

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

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

Pet*_*ell 5

composer.json通过该composer工具(您应该已安装)来管理依赖项.它的行为类似于npm你完全使用它.

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

Packagist

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

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

// ...
"require": {
  // ...
  "peterjmit/awesome-package": "*"
},
// ...
Run Code Online (Sandbox Code Playgroud)

*如果您愿意,可以使用版本号替换.完成后,您可以运行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.
Run Code Online (Sandbox Code Playgroud)

如果包装composer.json,那么你可以随时叉它,并添加你自己的.但是如果代码不符合PSR-0,那么你将不得不为包装找出自己的自动加载策略.