Magento 2: Sınıfları durdurucu oluşturma dışında bırak


9

Magento 2'de (beta9 ve üstü) bu komutu çalıştırabilirsiniz php bin/magento setup:di:compileve var/generationmagento örneğinizde bulunan tüm sınıflar için klasörde tüm yakalayıcılar, fabrikalar ve proxy'ler (ve belki diğerleri) oluşturulur .
Bu, canlı ortamlar için kullanışlıdır, aksi takdirde yukarıda belirtilen sınıflar, gerektiğinde çalışma zamanında oluşturulacak ve performansı etkileyebilir.
Komutu çalıştırırken yakalayıcıların oluşturulmaması için bu sınıftan bazı sınıfları hariç tutmanın bir yolu var mı?
Örnek olarak: Denetleyicinin Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatisticsönleyici üretilmesini istemiyorum .


buna ne için ihtiyacın var?
Anton Kril

@AntonKril. Soru sormayı bırak ve bana bir çözüm ver: D. Şimdi ciddi, bazı modülleri kaldırmaya çalışıyorum ve bunu yaparken, setup:di:compilebazı üst sınıflar eksik olduğu için başarısız olur. Bu eksik sınıfları genişleten sınıflar hala mevcuttur, ancak uygulama tarafından kullanılmazlar. İhtiyacım olan modüllerde oldukları için bunları kaldıramıyorum. Aşağıdaki tam açıklamaya bakın: magento.stackexchange.com/questions/69040/…
Marius

Yanıtlar:


7

en azından önceki sürümlerde cli'dan çalıştırmak için exclude-patternparametre vardır. Bir sınıf, örneğin magento1 sınıflarında olduğu gibi, doğru bir şekilde işlenemediğinde sorunlardan kaçınmak için eklenmiştir. Komutlar ve bağımsız değişkenler, konsol komutlarına dönüştürülerek değişmiş olabilir.

Ama hedefinizin ne olduğundan emin değilim, bu yüzden bunun iyi bir çözüm olup olmadığını söyleyemem.


İşte yapmaya çalıştığım şey. Ne kadar ileri gidebileceğimi görmek için bazı modülleri kaldırıyorum. Bu modüller arasındaReport modül var. Ancak Raporlar ve Arka Uç modülü arasındaki sıkı bağlantı nedeniyle, arka uç modülünde rapor modülü sınıflarına bağlı olan sınıflar hala vardır. Onları kullanmamanın bir yolunu buldum, ancak di komutu dosyaları ayrıştırdığından "yok sayılan" sınıflardan geçer ve önleyicileri oluşturmaya çalışır. Ancak bu başarısız olur, çünkü Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatisticsörneğin üst sınıf mevcut değildir. Bunu dışlamak için bir yola ihtiyacım var.
Marius

Konsol komuta yaklaşımında herhangi bir exclude-patternparam olmadığını ekler. Ya da en azından ben bulamadım. İçeri baktımDiCompileCommand::configure .
Marius

Gördüğünüz gibi, bu PR'ye başvurarak bu işlevselliği soran bir Sorun ekleyebilirsiniz: github.com/magento/magento2/pull/986 veya yerel yapınıza geçici olarak nasıl ekleyeceğinizi test etmek için buradaki değişiklik kümesini kullanabilirsiniz.
Flyingmana
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.