Symfony2和MVC - 扩展控制器是一个好习惯吗?

时间:2014-02-11 12:19:26

标签: php symfony model-view-controller controller symfony-2.4

我有一个简单而且可能是愚蠢的问题。

使用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模式一般会有好处吗?

1 个答案:

答案 0 :(得分:4)

Symfony is not MVC框架。 Symfony是Service-oriented architecture框架。通常,级联扩展控制器不会产生任何影响。

相反,您应该创建services并在需要时使用它。

此外,良好做法是define Controller as service