我的项目包含多个捆绑包,其中一些是必需的,有些我将在特定服务器上使用。现在我需要为非必需的bundle添加依赖项。我认为将它作为项目依赖项添加到主composor.json中是浪费,因为如果我不使用该包,我可能不会使用该代码。
是否可以在该捆绑包中包含composer.json文件?如果不可能我怎么处理我的案子?
实施例
src/
Project/
RequiredFirstBundle/
RequiredSecondBundle/
Non-RequiredBundle/
composor.json
我试过了:
//Path: src/Project/Non-RequiredBundle/composer.json
{
"name": "project/non-requiredbundle",
"description": "desc",
"type": "symfony-bundle",
"license": "MIT",
"authors": [
{
"name": "name",
"email": "email"
}
],
"require": {
"symfony/framework-bundle": "~2.2",
"another/dependency": "*"
},
"autoload": {
"psr-0": { "Project\\Non-RequiredBundle": "" }
},
"target-dir": "Project/Non-RequiredBundle"
}
但是当我执行composer.phar update
由于
答案 0 :(得分:2)
如果你想分享你的一些捆绑包,你应该将它们开发为像第三方那样的供应商捆绑包。因此,您应该为每个bundle创建一个Version-Control存储库,并为每个bundle添加一个composer.json。要使您的捆绑包可用于symfony composer-file,您需要将VersionControl url添加为资源。它可能看起来像这样:
"repositories": [
{
"type": "vcs"
"url": "https://github.com/igorw/monolog"
}
],
快乐编码:)
答案 1 :(得分:0)
如果我理解正确,您正在考虑使用包含所有内容的ONE软件版本并将其部署到任何地方,或者在该软件的单个服务器上部署具有不同依赖关系的MULTIPLE版本。
我认为原因不应该是在硬盘上保存几个字节。
但作曲家无法帮助你。事实上,你被迫在composer.json中包含你想要使用的任何依赖项,以使Composer将它包含在自动加载器中。
我会选择“一个版本适合所有人”并简单地包含所需的任何依赖项。无需担心部署未使用的软件部分。即使您认为用户将使用的部分,您也会一直这样做。