So Komponist ist genial, und es gibt eine Menge Code in dem Komponisten packagist Repository , die Magento - Erweiterungen einfacher macht zu schreiben.
Das Problem, vor dem ich stehe, ist, wie man das automatische Laden (sauber) einrichtet.
Standardmäßig werden Composer-Pakete unter / vendor installiert. In diesem Verzeichnis befindet sich eine autoload.php-Datei, mit der das Laden von Klassen für die von Composer verwalteten Pakete eingerichtet wird.
Was ist der beste Weg, um die Datei '/vendor/autoload.php' des Composers zu fordern? Dies müsste sowohl für den Webstore als auch für Shell-Skripte funktionieren. Gibt es ein Beobachterereignis, auf das ich tippen kann, um die require_once auszuführen?
Prost!
require_once $mageFilename
aufgerufen wird). Dies funktioniert gut für Client-Installationen und erfordert überhaupt kein Neuschreiben von Dateien.Antworten:
Der Magento-Autoloader ist in registriert
Mage.php
.Wenn Sie dies in einem eigenen Modul tun möchten, sollten Sie das erste mögliche Ereignis ergreifen und den Autoloader dort benötigen
Laut Alans Analyse wäre dies
resource_get_tablename
- aber Sie müssen sicherstellen, dass Sie dieses Ereignis nur einmal behandeln.Die schnelle und schmutzige Lösung wäre das Patchen
Mage.php
(der Anfang der Datei) - aber das hackt den Kern.Wir haben auch das Magento-PSR-0-Autoloader- Modul, das eine Möglichkeit bietet, das automatische Laden von Komponisten über config hinzuzufügen. Es ist eine grundlegende Implementierung, die das
resource_get_tablename
Ereignis nutzt .quelle