【问题标题】:Symfony2.3 - How to add a custom vendorSymfony2.3 - 如何添加自定义供应商
【发布时间】:2013-07-01 05:33:22
【问题描述】:

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

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

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

【问题讨论】:

标签: php symfony vendor symfony-2.3


【解决方案1】:

composer.json 通过composer 工具(您应该拥有installed)管理依赖关系。如果您使用过它,它的行为类似于 npm

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

包装师

如果自定义供应商已成功提交至packagist,那么您的生活就轻松了,您可以搜索它并记下名称(采用<vendor>/<package> 格式。

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

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

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

感谢 composer 自动加载器和 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-08-28
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2016-08-07
    • 2013-07-03
    • 2015-01-22
    相关资源
    最近更新 更多