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ß
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an