Pracowałem nad projektem z jakimś niestandardowym kodem ... to nasz pierwszy „średni” projekt Magento 2, więc (jak sądzę tutaj wszyscy ludzie) każdego dnia uczymy się nowych rzeczy i musimy zmienić sposób postępowania dzięki nowej wersji Magento
Powodem tego pytania jest pytanie o polecenie setup:di:compile
Używam go od pierwszego dnia z Magento 2, ponieważ bin / magento prosi o to po każdym setup:upgrade
, z komunikatem „Proszę ponownie uruchomić polecenie kompilacji Magento”
Cóż ... setup:di:compile
W tym projekcie znalazłem wykonywanie strony podglądu przerw w pracy z całkowicie niejednoznacznym błędem krytycznym. Spędziłem całe dni robocze próbując go debugować i testując zmiany kodu z zerowym wynikiem
Dziś odkryłem, że jeśli pominę to polecenie, wszystko działa jak urok, nawet w trybie produkcyjnym
Pytanie brzmi: co dokładnie to setup:di:compile
polecenie? Czy to jest wymagane Właśnie poleciłem? A może jest to przestarzałe polecenie, którego nie trzeba wykonywać?
AKTUALIZACJA
Jak niektórzy użytkownicy tego wymagali, to właśnie ten błąd krytyczny miał na myśli
Błąd krytyczny PHP: Nie można utworzyć instancji klasy abstrakcyjnej Magento \ Catalog \ Block \ Product \ View \ AbstractView w *** / vendor / magento / framework / ObjectManager / Factory / AbstractFactory.php w linii 93
Szukałem dowolnego niestandardowego bloku za pomocą Magento \ Catalog \ Block \ Product \ View \ AbstractView, ale znalazłem go tylko w plikach układu, nie ma go w żadnym konstruktorze klasy bloku
Nie mogę zrozumieć: dlaczego Magento zgłasza ten krytyczny błąd ze skompilowanym kodem, ale działa jak urok bez skompilowanego kodu