Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何更改Symfony2默认结构?_Php_Symfony - Fatal编程技术网

Php 如何更改Symfony2默认结构?

Php 如何更改Symfony2默认结构?,php,symfony,Php,Symfony,我可以更改默认的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

我可以更改默认的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..)

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

  • 应用程序(您的应用程序具有自定义功能)
  • 供应商(symfony和其他库)
  • src(您的源代码可能是特定于应用程序的,也可能不是特定于应用程序的, 可能存在仅适用于此应用程序的捆绑ClientoneBundle, 但也可以是在应用程序中重用的捆绑包,例如UserBundle)
  • web(http文档根)
因此,如果您有多个应用程序,您可以单独保留供应商。每个应用程序可能包含三个目录,如: -apps/acme/app -apps/acme/src -apps/acme/web -apps/clientone/app -apps/clientone/src -apps/clientone/web -some/where/else/in/filesystem/vendor

要实现这样的设置非常简单,-您只需编辑autoload.php(位于app dir中),只需将everywhere
\uuuuuu dir\uuuu./../vendor
替换为
\uuuuuu dir./../vendor
, 换句话说,告诉symfony2您将供应商转移到了其他地方


(我刚刚在你的设置中将app directory重命名为apps-为了不与app directory混淆,在你的每个应用程序中)

vendo目录包含Symfony核心文件,以及第三部分libs?另一个问题,我可以在应用程序之间共享捆绑包吗?是的,供应商是Symfony+其他一些库,如Doctrine、Swiftmailer和其他库。捆绑包可以共享,在每个捆绑包所在的位置,您也可以在autoload.php中进行设置,请参阅registerNamespaceFallbacks。