Extbase控制器中的正常功能

时间:2015-01-10 20:03:38

标签: typo3 typo3-6.2.x

是否可以在控制器中编写正常功能?

我想稍微清理我的代码,所以我想为重复的代码段编写一些方法,但我不想创建一个特殊的类。

怎么可能这样做?

如果我做正常

private function xyz () {}

我收到function not found错误。

2 个答案:

答案 0 :(得分:2)

您应该使用protected,而不是private,除非您有充分的理由这样做。无论如何,定义其他方法对我来说很好。

您需要使用$this->xyz()调用此方法。

答案 1 :(得分:2)

如果要共享控制器的方法,一个好的解决方案可能是使用抽象类:

abstract class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController{
    protected function myFunction(){}
}

您的控制器继承自抽象类,并且所有方法都可用:

class FirstController extends AbstractController {
    public function firstAction(){
        // has access to myFunction()
    }
}

class SecondController extends AbstractController {
    public function secondAction(){
        // has access to myFunction()
    }
}