doureng5668 2013-03-26 18:26
浏览 49
已采纳

在Symfony 2中加载父类

I've set up a test parent class in my Symfony 2 controller as follows:

<?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);
    }
}

The code is in src/Zetcho/AmColAnBundle/Controller/DefaultController.php The test code works. I'd now like to move the parent class (BaseController) out of the controller file to its own so I can reuse it in my other controllers. I want to put it in the same directory as the other controllers and I'd like to declare it the same way as the Controller in the use statement above. What's the best/accepted way to do this in Symfony 2?

  • 写回答

1条回答 默认 最新

  • dra11767 2013-03-26 19:42
    关注

    You do this in Symfony2 exactly the same way as you would with any PHP class. Split your classes into separate files like this:-

    src/Zetcho/AmColAnBundle/Controller/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/Controller/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);
        }
    }
    

    Its really quite simple once you know how. Remember that controllers in symfony2 are just normal PHP classes, there is nothing special about them.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.