【发布时间】:2018-06-01 23:46:54
【问题描述】:
在Upgrading Existing Applications to Flex 部分,Symfony 4 文档指出:
- 将原始源代码从
src/{App,...}Bundle/移动到src/并将每个 PHP 文件的命名空间更新为App\...(高级 IDE 可以自动执行此操作)。
第一部分“将原始源代码从src/{App,...}Bundle/移走”很清楚。我们可以这样理解目录结构:
sf3-project/
├── src/
├── AppBundle/
├── Controller/
├── MyFirstController.php
└── MySecondController.php
└── ...
└── ApiBundle/
├── Controller/
├── MyFirstController.php
└── MySecondController.php
└── ...
但是,第二部分 " 到 src/ 并将每个 PHP 文件的命名空间更新为 App\..." 我不清楚,尤其是关于建议的结构。
据我了解,建议将每个Controller/ 目录的内容复制到一个目录中。如果是这样,如何处理具有相同名称的控制器?我们应该添加以前一个包的前缀作为名称的子目录吗?
symfony demo project 似乎暗示了它,因为Controller/ 下的Admin/ 目录。
我们应该如何将之前的目录结构升级为以下?
sf4-project/
├── src/
├── Controller/
│ └── ...
├── ...
└── Kernel.php
我们可以注意到这个 sf4-project 示例遵循 逐层封装 结构,就像在文档中一样。我也想知道我们是否可以轻松地使用 按功能包 结构。
那么,Symfony 4 对于按层封装和按功能封装结构的建议方法是什么?
【问题讨论】:
-
这个问题已经被问过很多次了,没有明确的答案。我要说的一件事是确保在你投入并重构所有内容之前获得某种明显的好处。捆绑方法在 S4 上仍然可以正常工作。
-
@Cerad,这个问题在哪里已经被问过了(我猜它不在 SO)?你能分享一下吗?即使没有明确的答案,阅读它也可能很有趣。谢谢。
标签: php symfony architecture symfony-flex