В Magento 2 (бета-версия 9 и выше) вы можете запустить эту команду, php bin/magento setup:di:compile
и все перехватчики, фабрики и прокси-серверы (и, возможно, другие) будут сгенерированы в var/generation
папке для всех классов, которые есть в вашем экземпляре magento.
Это полезно для реальных сред, поскольку в противном случае упомянутые выше классы будут генерироваться во время выполнения, когда они необходимы, и могут влиять на производительность.
Есть ли способ исключить некоторые классы из этого скрипта, чтобы при запуске команды не создавались перехватчики?
Как пример: я хочу, чтобы контроллер Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
не генерировал перехватчики.
setup:di:compile
сбой, потому что некоторые родительские классы отсутствуют. Классы, которые расширяют эти отсутствующие классы, все еще существуют, но они не используются приложением. И я не могу удалить их, так как они находятся в модулях, которые мне нужны. См. Полное объяснение ниже: magento.stackexchange.com/questions/69040/…