Symfony --> Symfony 3 目录结构变化背后的逻辑是什么?

What is the logic behind the changes in directory structure of Symfony2 --> Symfony3?

我仍在学习 Symfony2,想知道是否有人可以解释 Symfony3 中目录结构更改背后的逻辑?很高兴听到更改的理由,并希望对 inheritance/overwriting 类.

的 'magic' 做出一些澄清

以下是两个版本的 Symfony 的标准目录结构:

交响乐 2:

blog/
├─ app/
│ ├─ console
│ ├─ cache/
│ ├─ config/
│ ├─ logs/
│ └─ Resources/
├─ src/
│ └─ AppBundle/
├─ vendor/
└─ web/

交响乐 3:

blog-symfony3/
├─ app/
│ ├─ config/
│ └─ Resources/
├─ bin/
│ └─ console
├─ src/
├─ var/
│ ├─ cache/
│ └─ logs/
├─ vendor/
└─ web/

如评论所述,this has already been outlined in my answer here

A google 搜索 symfony 3 directory structure 也 returns 它作为第一个结果 (在撰写本文时).


这里有一个简短的总结:

  1. cachelogsbootstrap.php.cache 已移至 /var 项目根目录中的目录。这使得它更容易 处理权限,你应该制作整个 var 目录 可写的。 ( 类似于 OS 这样的 unix)。您也可以在此处编写您自己的应用程序特定文件。

  2. 所有二进制可执行文件(consolesymfony_requirementsdoctrine)现在都位于 bin 目录(类似于 unix OS),你也可以在这里添加你自己的可执行文件。
    提示:使用以下内容更新您的 PATH 环境变量,以自动将 bin 目录(在当前工作目录中)中的所有文件包含在您的路径中。 PATH="./bin:$PATH"

  3. phpunit 现在可以从项目根目录 运行 而无需通过 -c 开关指定配置文件。
    <3.0 - phpunit -c app/phpunit.xml
    >3.0 - phpunit


您可以在此处阅读更详细的答案:

What is the new Symfony 3 directory structure?