Donc le compositeur est génial, et il y a beaucoup de code dans le dépôt packagist du compositeur qui facilite l'écriture des extensions Magento.
Le problème auquel je suis confronté est la meilleure façon de configurer (proprement) le chargement automatique.
Par défaut, les packages composer sont installés dans / vendor, et à l'intérieur de ce répertoire se trouve un fichier autoload.php qui configure le chargement de classe pour les packages gérés composer.
Alors, quelle serait la meilleure façon d'exiger le fichier '/vendor/autoload.php' du compositeur_once? Cela devrait fonctionner à la fois pour la boutique en ligne et les scripts shell. Existe-t-il un événement d'observateur sur lequel je peux appuyer pour effectuer la fonction require_once?
À votre santé!
require_once $mageFilename
est appelé). Cela fonctionne bien pour les installations clientes et ne prend aucun fichier de réécriture.Réponses:
Le chargeur automatique Magento est enregistré dans
Mage.php
.Si vous voulez le faire dans un propre module, vous devez saisir le premier événement possible et y exiger l'autochargeur
Selon l'analyse d' Alan, ce serait
resource_get_tablename
- mais vous devez vous assurer que vous ne gérez cet événement qu'une seule fois.La solution rapide et sale serait de patcher
Mage.php
(le tout début du fichier) - mais cela pirate le cœur.Nous avons également le module Magento-PSR-0-Autoloader , qui offre un moyen d'ajouter le chargement automatique des compositeurs via config. C'est une implémentation de base qui utilise l'
resource_get_tablename
événement.la source