我在哪里将通用库代码放在Symfony 2中?

rvd*_*vid 9 php symfony

快速提问:我应该在哪里将具有类似特征的代码放在本实用新型服务类中,如Benjamin Eberlei在此博客文章中所述(http://www.whitewashing.de/2013/06/27/extending_symfony2__controller_utilities.html) ?

对于过渡期,我把它放在:src/ProjectName/Library中

上下文

我注意到以下内容:

  • 此逻辑不属于特定的捆绑包,实际上它适用于要创建的所有捆绑包.
  • 此逻辑通常属于特定于应用程序的库,而不是作为bundle的一部分,因为bundle中的控制器将扩展或利用此库代码.

我找到了一些主题相似的问题的答案,但不完全是我追求的

基于我在这里单独研究SO的问题,这个问题似乎已经被某种程度上踩死了,但我认为之前提出的问题都围绕着我实际所追求的问题.无论如何,似乎我有以下选择:

  • 将这些类型的扩展放在一个包中 - 不适用于我正在开发的功能类型本质上是扩展框架代码.
  • 为项目创建供应商目录,其中所有的库代码都会去 - 如果这确实是最好的做法,那么它本质上意味着我必须通过作曲家中的私人仓库使库可用,但这意味着我' d必须维护一个单独的代码库.
  • 创建一些存在于src/Company/SomeNamespace中的伪连接器包 - 我甚至不知道这是否完全可行,但如果它符合SF最佳实践,我会调查它进一步.

同样,问题是为了简洁:我在哪里提供在Symfony 2中提供通用的全局功能的类?

我提前谢谢了.

Tho*_*ire 2

这个关于Composer 存储库的文档是一个很好的参考,关于不支持 Composer 的包的文档应该是您正在寻找的。

另外,我想指出有关 VCS 的文档,当您需要分叉 Bundle 并覆盖原始 Bundle 时经常使用该文档(我使用过很多次)。

您可以执行以下操作 - 它不需要您拥有包装系统或其他任何东西。您只需将该包压缩为 zip 格式,您的计算机可以使用 URL 访问该包。

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "my/package",
                "version": "1.0.0",
                "dist": {
                    "url": "https://github.com/my/package/archive/master.zip",
                    "type": "zip"
                },
                "autoload": {
                    "psr-0": {
                        "My\\Package\\": "src/"
                    }
                }
            }
        }
    ],
    "require": {
        "my/package": "1.0.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您的软件包不支持 PSR-0 那么您需要使用选项“classmap”,否则您的软件包支持 PSR-0 您需要使用选项 psr-0