I wrote a Command Controller that handles data import from an URL. pseudo-syntax is like this:
class ImportCommandController extends \TYPO3\CMS\Extbase\Mvc\Controller\CommandController
{
public function importCommand($auth){
$data = file_get_content();
}
}
this works. But when I try to call that command from the Action Controller of my backend Module I get errors. Heres the code: 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();
}
}
When I call importAction()
like this, I get:
"Call to a member function testCommand() on null"
When I uncomment the makeInstance
, I get:
"Call to a member function get() on null"
Sadly, this topic is documente rather poorly in the TYPO3 Docs. Can someone help me on this or point me to the right direction?
I'd like to slightly alter the answer already given by René and add some code examples. I also recommend to put your import logic into a dedicated class, e.g.
ImportService
:You can now inject this class as a dependency of your CommandController and your ActionController: