Tak więc kompozytor jest niesamowity, aw repozytorium packagist kompozytora jest dużo kodu, który ułatwia pisanie rozszerzeń Magento.
Problem, przed którym stoję, polega na tym, jak najlepiej (czysto) skonfigurować automatyczne ładowanie.
Domyślnie pakiety kompozytora są instalowane w katalogu / vendor, a wewnątrz tego katalogu znajduje się plik autoload.php, który konfiguruje ładowanie klas dla pakietów zarządzanych przez kompozytora.
Jaki byłby więc najlepszy sposób na wymaganie pliku „/vendor/autoload.php” kompozytora? Musiałoby to działać zarówno dla sklepu internetowego, jak i skryptów powłoki. Czy istnieje zdarzenie obserwatora, którego mogę dotknąć, aby wykonać wymagany parametr?
Twoje zdrowie!
require_once $mageFilename
wywołaniem). Działa to dobrze w instalacjach klienckich i nie wymaga w ogóle przepisywania plików.Odpowiedzi:
Autoloader Magento jest zarejestrowany w
Mage.php
.Jeśli chcesz to zrobić we własnym module, powinieneś pobrać pierwsze możliwe zdarzenie i wymagać tam autoloadera
Według analizy Alana byłoby to
resource_get_tablename
- ale musisz upewnić się, że poradzisz sobie z tym wydarzeniem tylko raz.Szybkim i brudnym rozwiązaniem byłoby załatanie
Mage.php
(sam początek pliku) - ale to włamuje się do rdzenia.Mamy też moduł Magento-PSR-0-Autoloader , który oferuje sposób dodawania autoloaderów kompozytorów poprzez config. Jest to podstawowa implementacja wykorzystująca
resource_get_tablename
wydarzenie.źródło