【问题标题】:How to change Symfony2 default structure?如何更改 Symfony2 默认结构?
【发布时间】:2012-09-20 19:04:00
【问题描述】:

我可以更改默认 Symfony2 结构以满足我的需要吗? 我喜欢下面的结构,但不知道如何让它工作..

core/ <- Symfony2 core files
app/ <- All applications
app/Acme/ <- Application for Acme enterprise (with all bundles..)
app/clientone.com/ <- Application for Client One enterprise (with all bundles..)

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    在 symfony2 发行版中有 4 个主要目录:

    • 应用程序(您的应用程序有自定义)
    • 供应商(symfony 和其他库)
    • src(您的源代码可能是也可能不是特定于应用程序的, 可能有特定于此应用程序的捆绑 ClientoneBundle, 但也可以是在您的应用程序中重用的捆绑包,例如 UserBundle)
    • web(http 文档根目录)

    因此,如果您有多个应用程序,则可以将供应商分开。您的每个应用程序都可能包含三个目录,例如: - 应用程序/极致/应用程序 - 应用程序/acme/src - 应用程序/极致/网络 - 应用程序/客户端/应用程序 - 应用程序/clientone/src - 应用程序/客户端/网络 - some/where/else/in/filesystem/vendor

    要实现这样的设置非常简单,您只需编辑您的 autoload.php(位于应用程序目录中),只需将所有位置的 __DIR__.'/../vendor 替换为 __DIR__.'/../vendor, 换句话说,告诉 symfony2 你把供应商搬到了别的地方。

    (我刚刚将您设置中的 app 目录重命名为 apps - 不要与每个应用程序中的 app 目录混淆)

    【讨论】:

    • vendo 目录有 Symfony 核心文件,以及第三部分库?
    • 另一个问题,我可以在应用程序之间共享捆绑包吗?
    • 是的,供应商是 Symfony + 一些其他库,如 Doctrine、Swiftmailer 等。并且捆绑包可以共享,每个捆绑包的放置位置也可以在 autoload.php 中设置,请参阅 registerNamespaceFallbacks 。
    猜你喜欢
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多