[TYPO3-german] Finisher-Klasse für Formhandler wird nicht mehr gefunden
bugblatterbeast
info at bugblatterbeast.de
Tue Mar 17 19:24:13 CET 2015
Hallo,
der Vollständigkeit halber will ich diesen alten Post noch mal aktualisieren. Ich weiss nach unzähligen Änderungen und Versuchen nicht mehr was es letzendlich war, aber das Autoloader-Problem konnte gelöst werden und die Klasse kann nun mit dem Object-Manager geladen werden. Es scheint unmöglich in einem Formhandler-Custom-Finisher, der von der Klasse Tx_Formhandler_AbstractFinisher abgeleitet ist, auf Extbase-Repositories zuzugreifen.
Versuch 1:
<?php
class Tx_AbcTest_Finisher_MyFinisher extends Tx_Formhandler_AbstractFinisher {
/**
* @var \Abc\AbcTest\Domain\Repository\FileRepository
* @inject
*/
protected $fileRepository;
public function process() {
$temp = $this->fileRepository->findAll();
}
}
?>
Ergebnis:
Fatal error: Call to a member function findAll() on a non-object in ...
________________________________________________________________________________
Versuch 2:
<?php
class Tx_AbcTest_Finisher_MyFinisher extends Tx_Formhandler_AbstractFinisher {
public function process() {
$this->fileRepository = new \Abc\AbcTest\Domain\Repository\FileRepository();
$temp = $this->fileRepository->findAll();
}
}
Ergebnis:
PHP Catchable Fatal Error: Argument 1 passed to TYPO3\CMS\Extbase\Persistence\Repository::__construct() must implement interface TYPO3\CMS\Extbase\Object\ObjectManagerInterface, none given, called in /home/www/test/typo3conf/ext/abc_test/Classes/Finisher/Tx_AbcTest_Finisher_MyFinisher.php on line 6 and defined in /home/www/typo3/typo3_src-6.2.10/typo3/sysext/extbase/Classes/Persistence/Repository.php line 75
________________________________________________________________________________
Versuch 3:
<?php
class Tx_AbcTest_Finisher_MyFinisher extends Tx_Formhandler_AbstractFinisher {
public function process() {
$this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('\TYPO3\CMS\Extbase\Object\ObjectManager');
$this->objectManager->get('Abc\\AbcTest\\Domain\\Repository\\FileRepository');
$temp = $this->fileRepository->findAll();
}
}
Ergebnis:
$temp->count() = 0
$temp->getFirst = NULL
Die Funktion $temp = $this->fileRepository->findAll() wird fehlerfrei ausgeführt. Die bestehenden Daten werden aber nicht gefunden.
Gruß
More information about the TYPO3-german
mailing list