Інтеграція автонавантажувача композитора в Magento


19

Таким чином, композитор є дивовижним, і в сховищі пакувальників композитора багато коду, що полегшує написання розширень Magento.

Проблема, з якою я стикаюся, полягає в тому, як найкраще (чисто) налаштувати автозавантаження.

За замовчуванням пакети композиторів встановлюються до / постачальника, а всередині цього каталогу знаходиться файл autoload.php, який встановлює завантаження класів для керованих композиторів пакетів.

Отже, що було б найкращим способом вимагати файл /vendor/autoload.php 'композитора? Це потрібно буде працювати як для веб-магазину, так і для скриптів оболонки. Чи є подія спостерігача, яку я можу натиснути, щоб зробити Requ_once?

Ура!


Немає жодного поняття, якщо github.com/magento-hackathon/magento-composer-installer допоможе тут. Я думаю, що це досить непов'язано. Я думаю, ви намагаєтесь встановити пакети, що не містять Magento, з композитором і хочете, щоб вони мали їх у lib /
Алекс,

Так, ви можете встановити композитор для встановлення lib, якщо ви вирішите, але я хочу, щоб композитори libs / mage libs були відокремленими, якщо це можливо. Також у композитора ви можете мати акуратні речі, такі як автоматичне завантаження в класі, яке не відповідає механізму автоматичного завантаження Mage.
Аарон Боннер

1
+1. Здається, одна з ранніх розсилок подій з Mage.php повинна зробити трюк ...?
kalenjordan

Я знаю, що на це відповіли давно, але інший варіант - включити автозавантажувач постачальника у файл index.php (раніше, require_once $mageFilenameяк називається). Це добре працює для клієнтських установок і зовсім не потребує перезапису файлів.
Джозеф у SwiftOtter

Ну ви зламаєте основний файл, index.php. Під час оновлення вам потрібно пам’ятати, що ви додали цей рядок коду до index.php.
Аарон Боннер

Відповіді:


15

Автонавантажувач Magento зареєстрований у Mage.php.

Якщо ви хочете зробити це у власному модулі, вам слід схопити першу можливу подію та вимагати там автозавантажувача

Згідно з аналізом Алана, це було б resource_get_tablename- але ви повинні переконатися, що ви один раз впораєтеся з цією подією.

Швидким і брудним рішенням було б виправлення Mage.php(самий початок файлу) - але це злом ядра.

Також у нас є модуль Magento-PSR-0-Autoloader , який пропонує спосіб додавання композиторів для автоматичного завантаження через config. Його основна реалізація, яка використовує resource_get_tablenameподію.


Дякую Алекс, це ідеально. Я зафіксував mage.php, але не хотів ставити це у виробництво. спостереження за ім'ям ресурсу_get_table добре працювало!
Аарон Боннер

4
Vinai також висловив велику пропозицію помістити Varien_Autoload у місцевий пул кодів і поставити туди необхідний код, який дозволяє уникнути дорогих подій спостерігачів та безпосередньо виправити основний код.
Аарон Боннер

1
"Проста реалізація вищенаведеного прикладу: github.com/thijssnowcountry/magento1_composer_loader " - @ user2594875
Fabian Schmengler
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.