2013-03-26 35 views
0

我已经设置了一个测试父类在我的Symfony 2控制器如下:加载父类中的Symfony 2

<?php 

namespace Zetcho\AmColAnBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class BaseController extends Controller 
{ 
    public function validateUser() 
    { 
     $user['first_name'] = "Name"; 
     $user['signin'] = true; 
     return $user; 
    } 
} 
class DefaultController extends BaseController 
{ 
    public function indexAction() 
    { 
     $user = $this->validateUser(); 
     $displayParms['user'] = $user; 
     return $this->render('ZetchoAmColAnBundle:Default:index.html.twig',$displayParms); 
    } 
} 

的代码在src/Zetcho/AmColAnBundle /控制器/ DefaultController.php 测试代码起作用。我现在想将父类(BaseController)从控制器文件中移出来,以便我可以在其他控制器中重用它。我想把它放在与其他控制器相同的目录中,我想在上面的use语句中声明它与Controller的相同方式。在Symfony 2中做什么是最好的/被接受的方式?

+0

可以用同样的方法来完成它们。我不明白你的关注 – 2013-03-26 18:57:31

回答

1

你可以在Symfony2中做到这一点,就像使用任何PHP类一样。分裂您的类放入单独的文件是这样的: -

的src/Zetcho/AmColAnBundle /控制器/ BaseController.php

namespace Zetcho\AmColAnBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class BaseController extends Controller 
{ 
    public function validateUser() 
    { 
     $user['first_name'] = "Name"; 
     $user['signin'] = true; 
     return $user; 
    } 
} 

的src/Zetcho/AmColAnBundle /控制器/ DefaultController.php

namespace Zetcho\AmColAnBundle\Controller; 

use Zetcho\AmColAnBundle\Controller\BaseController; 

class DefaultController extends BaseController 
{ 
    public function indexAction() 
    { 
     $user = $this->validateUser(); 
     $displayParms['user'] = $user; 
     return $this->render('ZetchoAmColAnBundle:Default:index.html.twig',$displayParms); 
    } 
} 

一旦你知道如何,它非常简单。请记住symfony2中的控制器只是普通的PHP类,它们没有什么特别之处。

+0

谢谢。我一直在想我必须做一些步骤才能实现它。我喜欢简单。 – curt 2013-03-26 21:09:16