2013-03-26 72 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