gpt4 book ai didi

php - 在 Symfony 2 中加载父类

转载 作者:行者123 更新时间:2023-12-04 17:04:30 27 4
gpt4 key购买 nike

我已经在我的 Symfony 2 Controller 中设置了一个测试父类,如下所示:

<?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/Controller/DefaultController.php
测试代码有效。我现在想将父类 (BaseController) 从 Controller 文件中移到它自己的文件中,以便我可以在其他 Controller 中重用它。我想将它放在与其他 Controller 相同的目录中,并且我想以与上面 use 语句中的 Controller 相同的方式声明它。在 Symfony 2 中执行此操作的最佳/公认方法是什么?

最佳答案

您在 Symfony2 中执行此操作的方式与使用任何 PHP 类完全相同。将您的类拆分为单独的文件,如下所示:-

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

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

关于php - 在 Symfony 2 中加载父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15644669/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com