我的项目由多个捆绑包组成,其中一些是必要的,一些我将在特定服务器上使用。现在我需要为非必需的捆绑包添加依赖项。我觉得在主composor中将其添加为项目依赖项是一种浪费。json,因为如果我不使用bundle,我可能不会使用该代码。

是否有可能有一个作曲家。该包内的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

谢谢

有帮助吗?

解决方案

如果我理解正确,您正在考虑要么有一个包含所有内容的软件版本并将其部署到任何地方,要么在该软件的单个服务器上部署具有不同依赖项的多个

我不认为原因应该是在硬盘上保存几个字节。

但作曲家不能帮助你。事实上,您被迫在该作曲家的某个地方包含您想要使用的任何依赖项。json以使Composer将其包含在自动加载器中。

我会选择"一个版本适合所有",只需包含所需的任何依赖项。无需担心部署未使用的软件部件。你会一直这样做,即使你认为用户会使用的部分。

其他提示

如果你想分享你的一些捆绑,你应该把它们开发成像第三方那样的vendorbundles。因此,您应该为每个捆绑包创建一个版本控制存储库,并添加一个作曲家。每个包的json。要使您的捆绑包可用于symfony composer-file,您需要将VersionControl url添加为资源。它可能看起来像这样:

"repositories": [
    {
        "type": "vcs"
        "url": "https://github.com/igorw/monolog"
    }
],

快乐编码:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top