我有一个简单而且可能是愚蠢的问题。
使用Symfony2 PHP框架我经常使用如下所示的扩展控制器(当然这取决于工作类型):
class MainController extends Controller{
private $locale = array();
protected function Locale() {
$em = $this->getDoctrine()
->getManager();
$this->locale = $em->getRepository('CommonLanguageBundle:Language')
->findBy(
array('code' => $this->getRequest()
->getLocale()
)
);
// \Doctrine\Common\Util\Debug::dump($this->locale);
return $this->locale[0];
}
//..
}
class StoreController extends MainController{
function a_method() {
$data = $this->Locale()->getId();
//...
}
}
class DefaultController extends StoreController {
$data = $this->Locale()->getId();
//...
}
这是一个好习惯吗?
在网上浏览我发现了很多文章,但对我来说还不是很清楚。
最后,如果它在Symfony2中运行良好,那对于MVC模式一般会有好处吗?
答案 0 :(得分:4)
Symfony is not MVC框架。 Symfony是Service-oriented architecture框架。通常,级联扩展控制器不会产生任何影响。
相反,您应该创建services并在需要时使用它。
此外,良好做法是define Controller as service。