In Magento 2 (Beta9 und höher) können Sie diesen Befehl ausführen, php bin/magento setup:di:compile
und alle Interceptors, Fabriken und Proxys (und möglicherweise andere) werden im var/generation
Ordner für alle Klassen generiert, die Sie in Ihrer Magento-Instanz haben.
Dies ist nützlich für Live-Umgebungen, da andernfalls die oben genannten Klassen zur Laufzeit generiert werden, wenn sie benötigt werden und die Leistung beeinträchtigen können.
Gibt es eine Möglichkeit, einige Klassen von diesem Skript auszuschließen, damit die Interceptors beim Ausführen des Befehls nicht erstellt werden?
Als Beispiel: Ich möchte, dass der Controller Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
keine Interceptors generiert.
magento2-dev-beta
Marius
quelle
quelle
setup:di:compile
schlägt das fehl, weil einige übergeordnete Klassen fehlen. Die Klassen, die diese fehlenden Klassen erweitern, sind noch vorhanden, werden jedoch von der Anwendung nicht verwendet. Und ich kann sie nicht entfernen, da sie sich in Modulen befinden, die ich benötige. Eine vollständige Erklärung finden Sie unten: magento.stackexchange.com/questions/69040/…Antworten:
Für die Ausführung von CLI zumindest in früheren Versionen gibt es den
exclude-pattern
Parameter. Es wurde hinzugefügt, um Probleme zu vermeiden, wenn eine Klasse nicht korrekt verarbeitet werden kann, wie dies beispielsweise bei magento1-Klassen der Fall ist. Die Befehle und Argumente haben sich möglicherweise geändert, indem sie in Konsolenbefehle konvertiert wurden.Aber ich bin mir nicht sicher, was Ihr Ziel ist, daher kann ich nicht sagen, ob dies eine gute Lösung ist.
quelle
Report
Modul. Aufgrund der engen Kopplung zwischen Berichten und dem Backend-Modul gibt es im Backend-Modul immer noch Klassen, die von den Klassen des Berichtsmoduls abhängen. Ich habe einen Weg gefunden, sie nicht zu verwenden, aber da der Befehl di die Dateien analysiert, durchläuft er die "ignorierten" Klassen und versucht, die Interceptors zu erstellen. Dies schlägt jedoch fehl, da beispielsweise die übergeordnete Klasse vonMagento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
nicht vorhanden ist. Ich brauche also einen Weg, dies auszuschließen.exclude-pattern
scheint, dass es im Konsolenbefehlsansatz keinen Parameter gibt. Zumindest habe ich es nicht gefunden. Ich schaute hineinDiCompileCommand::configure
.