【问题标题】:Handling separate Bundle Requirements on Symfony2在 Symfony2 上处理单独的 Bundle 需求
【发布时间】:2013-07-22 20:06:43
【问题描述】:

我正在尝试为 Symfony 开发一个可重用的捆绑包,但我被困住了,因为我不明白如何从捆绑包本身迁移一个包。

我发现这个非常有用的教程:

http://knpuniversity.com/screencast/question-answer-day/create-composer-package

但不幸的是,它仅在您已经完成库时才有用。

我想做的是能够,例如,在项目中创建一个新的 symfony 包,并定义该包具有的依赖项,假设在该包根目录下的 composer.json 文件中(而不是整个项目),并且当在我的项目的根目录中执行 composer update 时,它​​会自动处理捆绑包和项目其余部分的依赖项。

然后,当我看到该捆绑包功能齐全时,我当然会将其上传到 github 和 packagist,因此,该教程会很有用。

有人处理过这类问题吗?

提前非常感谢!

【问题讨论】:

  • 我真的不明白您的问题:您可以在应用程序的composer.json 文件中定义应用程序的依赖项。您还将在每个捆绑包中找到相同的文件。
  • 这个想法是:我的根项目中有一个 composer.json,然后在 MyProject/src/MyBundle 中,我还有一个应该用于在 MyProject/vendor 安装供应商的 composer.json .就像现在一样,我在一个包中定义了一个 composer.json,它不会自动安装该包所需的供应商。这就是我想要的。
  • @pmartelletti 您的主要composer.json 是否将您的捆绑包作为依赖项引用?如果没有,并且您只是将其添加到您的供应商目录,显然 Composer 不会知道为您加载传递依赖项。但是,如果您的捆绑包位于应用程序的 composer.json 中,则可以正常工作
  • 现在,我的包在 src/ 目录下,所有包都默认在 symfony 中。我想要的是定义一个包列表,我的包需要这些包才能正常工作,并能够从根目录下的主 composer.json 文件中引用该 composer.json 文件(位于 src/mybundle 下) .这可能吗?
  • @pmartelletti 这不是您编写可重用包的方式。 src/ 下的捆绑包被视为特定于应用程序,因此使用应用程序的composer.json。他们没有自己的composer.json 文件(真的毫无意义)。为了使用您的捆绑目录中的composer.json,捆绑本身必须是您的应用程序composer.json 所必需的(这意味着它将被加载到vendor 目录中)。

标签: php symfony bundle composer-php


【解决方案1】:

您可以使用本地存储库作为应用的要求:

"repositories": [
    {
        "type":"vcs",
        "url":"/home/marek/dev/sf2-bundles/TheodoRogerCmsBundle"
    }
],
"require":{
     "theodo/roger-cms-bundle":"dev-master"
}

来源:http://marekkalnik.tumblr.com/post/22929686367/composer-installing-package-from-local-git-repository

然后你可以把它放在你喜欢的任何地方,Composer 会为你的应用获取它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    相关资源
    最近更新 更多