[TYPO3-german] Autoloader für pibased Extension

Peter Linzenkirchner liste at lisardo.de
Fri May 8 21:06:56 CEST 2015


Hallo liebe Liste, 

ich versuche gerade einige pi_based Extensions auf TYPO3 6.2 hochzuziehen. Dabei stolpere ich über folgende Konstruktion: 

in einer Extension (ah_members) wird eine Klasse einer anderen Extension (ah_lib) geladen: 

       if( t3lib_extMgm::isLoaded(‚ah_lib', 0)) {
         include_once(t3lib_extMgm::extPath(‚ah_lib').'lib/class.tx_ahlib.php');
         $this->ahLib = t3lib_div::makeInstance('tx_ahlib');
      }

das include_once funtkioniert ja nicht mehr und muss durch einen autoloader ersetzt werden. Ich habe also eine Datei ext_autoload.php erstellt im Verzeichnis der Ext ah_members: 

/typo3conf/ext/ah_members/ext_autoload.php

mit dem Inhalt: 

$src = t3lib_extMgm::extPath('ah_lib').'lib/class.tx_ahlib.php';
return array(
    'tx_ahlib_tx_ahlib' => $src
);

wobei ah_lib die Extension ist, die Klassendatei class.tx_ahlib.php heisst und die Klasse tx_ahlib - einfach aus dem include-Befehl übertragen. Müsste soweit ja stimmen. Problem ist der String im Array: wie wird der zusammengesetzt? 

'tx_myext_myclass‘ würde doch zu  'tx_ahlib_tx_ahlib‘ oder? 
Funktioniert aber nicht … 

wenn ich den Code in ah_members so ändere: 
       if( t3lib_extMgm::isLoaded('ah_lib', 0)) {
         $this->ahLib = t3lib_div::makeInstance('tx_ahlib');
      }
bekomme ich den Fehler, dass die Klasse tx_ahlib fehlt. 

Kann mir jemand auf die Sprünge helfen? 

Wie muss sich dieser String zusammensetzen?
Stimmt mein Ansatz überhaupt, in ah_members zu versuchen über eine ext_autoload eine Klasse aus einer anderen Extension zu laden? Oder habe ich hier einen generellen Denkfehler drin? 

Danke
Peter





--
Xing: http://www.xing.com/profile/Peter_Linzenkirchner
Web: http://www.typo3-lisardo.de
Facebook: http://tinyurl.com/lisardo-multimedia



More information about the TYPO3-german mailing list