Auch eine Kurznotiz:
// initialize extbase $bootstrap=new Tx_Extbase_Core_Bootstrap(); $bootstrap->initialize(array('extensionName'=>'myExtension', 'pluginName'=>'myPluginName', 'persistence.'=>array('storagePid'=>$storagePid)));
Auch eine Kurznotiz:
// initialize extbase $bootstrap=new Tx_Extbase_Core_Bootstrap(); $bootstrap->initialize(array('extensionName'=>'myExtension', 'pluginName'=>'myPluginName', 'persistence.'=>array('storagePid'=>$storagePid)));
Leider gibt es momentan keine schöne Lösung den Autoloader von Contao zu erweitern. Der Autoloader in Contao 2.9.4 findet sich unter system/functions.php. Er wird dort mittels der __autoload Funktion von PHP implementiert. Ich vermutete, dass dies aus Gründen der Kompatibilität auf diese Weise gelöst wurde. In der Tat gibt es ein Feature-Ticket, welches eine Überarbeitung des Autoloaders vorsieht und sogar anerkannt wurde. Leider ist jedoch seit ca. elf Monaten nichts passiert.
Um updatesicher den Autoloader zu erweitern, kann man folgendermaßen vorgehen:
In der initconfig.php kann eine eigene Klasse eingebunden werden, die über spl_autoload einen Autoloader registriert. Das könnte beispielsweise so aussehen:
require_once(dirname(__FILE__).'/../../myclasses/myautoloader.php');
In dieser Datei wird der eigene Autoloader implementiert. Ein ganz rudimentärer Code als Beispiel:
class Autoloader { /** * @param string $class_ */ public static function autoload($class_) { $file=dirname(__FILE__).'/'.strtolower($class_).'.php'; if(file_exists($file)) { require_once $file; return; } __autoload($class_); } } // Register autoloader spl_autoload_register(array('Autoloader', 'autoload'));
Der Trick an der Sache ist, die normalerweise magisch aufgerufene Methode __autoload explizit am Ende des eigenen Autoloaders aufzurufen. Ich habe das nicht in aller Ausführlichkeit getestet, also ohne Garantie.