我编写了一个处理从URL导入数据的命令控制器。 伪语法是这样的:在PHP/TYPO3中从ActionController调用CommandController Extbase
class ImportCommandController extends \TYPO3\CMS\Extbase\Mvc\Controller\CommandController
{
public function importCommand($auth){
$data = file_get_content();
}
}
这个工程。 但是,当我尝试从我的后端模块的操作控制器调用该命令时,我收到错误。 继承人的代码: 的ActionController:
class ImportController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
/**
* @var \Vendor\MyExt\Command\ImportCommandController importCommandCtrl
* @inject
*/
protected $importCommandCtrl;
public function importAction()//($url,$usr,$pass)
{
//$this->importCommandCtrl = GeneralUtility::makeInstance('Vendor\MyExt\Command\ImportCommandController');
$this->importCommandCtrl->testCommand();
}
}
当我打电话importAction()
这样,我得到:
“调用一个成员函数testCommand()对空”
当我取消了makeInstance
,我得到:
“调用成员函数get()null”
不幸的是,这个主题在TYPO3 Docs中文档比较差。 有人可以帮助我,或指向正确的方向吗?
在未来使用injectFunctions代替注释@injects – jokumer
你是对的。注入方法确实比解析注释更好。但他们也膨胀了示例代码,这就是为什么我在这里使用@inject。 – Daniel
等等,什么?注入注释对性能有影响?对象缓存没有照顾到吗? – j4k3