在Symfony 最佳实践中,建议不要使用包来组织业务逻辑。
仅当其中的代码打算在其他应用程序中按原样重用时,才应使用捆绑包:
但是捆绑包意味着可以作为独立软件重用的东西。如果 UserBundle 不能在其他 Symfony 应用程序中“按原样”使用,那么它不应该是它自己的包。
所以,当我将我的应用程序从 Symfony 3.3 升级到 Symfony 4 时,我认为这是重新组织我的代码的正确时机。
目前我遵循“捆绑结构”:
- src
- AppBundle
- Controller
- Entity
- Repository
- Resources
- ...
- MyNamespace
- Bundle
- BundleTodo
- Controller
- Entity
- Repository
- Resources
- ...
- BundleCatalog
- Controller
- Entity
- Repository
- Resources
- ...
- BundleCart
- Controller
- Entity
- Repository
- Resources
- ...
- ...
现在,有了新的目录结构,我应该如何组织我的代码?
我想这样组织它:
-src
- Core
- Controller
- Entity
- Repository
- ..
- Todos
- Controller
- Entity
- Repository
- ..
- Catalog
- Controller
- Entity
- Repository
- ..
- Cart
- Controller
- Entity
- Repository
- ...
但是,这是正确的吗?Symfony 4 和 Flex 的预期文件夹结构有什么问题吗?
或者更好的是这样的:
-src
- Controller
- Core
- Todos
- Catalog
- Cart
- ...
- Entity
- Core
- Todos
- Catalog
- Cart
- ...
- Repository
- Core
- Todos
- Catalog
- Cart
- ...
- ...
这同样适用于项目目录结构中描述的其他根文件夹(关于如何覆盖它)。
在决定我的新文件夹结构时,是否有任何规则或限制需要考虑?
试图解决问题
所以,为了解决这个问题,我会更深入地研究文档,我会在这里写下我会发现的东西。
- 控制器:使用细粒度的控制器配置。
- 枝条:
- 实体:使用
orm.entity_managers.some_em.mappings.mapping_name