Magento 2 bringt viele nützliche Tools mit. Eines dieser Werkzeuge erstellt einen Report, der Abhängigkeiten zwischen allen Modulen auflistet.
Abhängigkeiten in Magento 2 werden über die composer.json-Dateien der Module definiert. Unterschieden wird dabei zwischen „Hard Dependencies„, wenn also ein Modul zwingend ein anderes benötigt und „Soft Dependencies„, wenn das andere Modul optional ist.
Eine harte Abhängigkeit wird in composer.json über „require“ festgeschrieben, eine weiche Abhängigkeit über „suggest“. Ein Beispiel findet sich im Modul Magento_Checkout:
{ "name": "magento/module-checkout", "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", "magento/module-store": "0.74.0-beta7", /* ... */ }, "suggest": { "magento/module-cookie": "0.74.0-beta7" }, /* ... */ }
Das Shell-Skript module-dependencies.php analysiert diese Informationen:
# Ausgangsverzeichnis ist das Magento-Root-Verzeichnis $ php dev/tools/Magento/Tools/Dependency/generate/modules-dependencies.php Report successfully processed.
Das Resultat wird in die Datei modules-dependencies.csv geschrieben. Dort wird pro Modul aufgelistet, zu welchen Modulen harte und weiche Abhängigkeiten bestehen:
Die Informationen können nun nach Belieben weiter verarbeitet werden.
In demselben Verzeichnis findet sich ein weiteres Tool modules-circular-dependencies.php. Dieses erstellt einen CSV-Report über zirkuläre Abhängigkeiten zwischen den Modulen.