[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