是否可以在控制器中编写正常功能?
我想稍微清理我的代码,所以我想为重复的代码段编写一些方法,但我不想创建一个特殊的类。
怎么可能这样做?
如果我做正常
private function xyz () {}
我收到function not found
错误。
答案 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()
}
}