【发布时间】:2015-11-20 10:05:35
【问题描述】:
我对 Symfony 2 的设计有疑问。事实上,我想在我的捆绑包中使用一个特征,但我不确定在哪里找到该特征。它不是控制器,也不是模型或实体。
我有一个解决方案,但我不确定它是否遵循最佳实践。这个想法是创建一个名为 /Trait 的新文件夹。对吗?
<your-bundle>/
├─ AcmeBlogBundle.php
├─ Controller/
├─ Entity/
├─ Trait/ <- My thought
├─ README.md
├─ LICENSE
├─ Resources/
│ ├─ config/
│ ├─ doc/
│ │ └─ index.rst
│ ├─ translations/
│ ├─ views/
│ └─ public/
└─ Tests/
非常感谢
【问题讨论】:
-
您的
Trait是为了在您的实体中添加特定字段而创建的吗? -
不,这是为我的控制器添加一些通用功能
-
接口会更好,不是吗?
-
@miguel,我认为,创建 BaseController 并从 BaseController 扩展控制器的最佳解决方案。
-
接口没有任何功能,只有意图。如果您的特征是针对特定类型的类(控制器),那么将它们放在相应的命名空间
Acme\BlogBundle\Controller\Traits中可能是有意义的。
标签: php symfony design-patterns bundle