Czy istnieje sposób, aby wyświetlić listę wszystkich przepisań i być może inne potencjalne konflikty oprócz przeglądania wszystkich plików konfiguracyjnych? Muszę przeanalizować niektóre projekty z wieloma rozszerzeniami i niestandardowymi modyfikacjami i chciałbym zautomatyzować jak najwięcej z tego.
Najważniejszą rzeczą jest wykrycie rozszerzeń, które przepisują tę samą klasę, ale chciałbym mieć również listę wszystkich przepisań, aby mieć przegląd. W tej chwili utrzymuję tę listę ręcznie w arkuszu kalkulacyjnym.
Znalazłem to rozszerzenie („Konflikt rozszerzeń”) na Magento Connect, ale sądząc po recenzjach i uwagach do wydania, wydaje się być nieaktualne.
magento-1
extensions
overrides
configuration
code-analysis
Fabian Schmengler
źródło
źródło
grep
Odpowiedzi:
Spójrz na narzędzie n98-magerun :
Możesz także zapisać konflikty w pliku XML JUnit Style w celu dalszej analizy, na przykład na serwerze kontynuacji integracji.
Uwaga: semi-self-link / Jestem zaangażowany w ten projekt
źródło
Oto mały jednowarstwowy, który zapewnia wszystkie aktywne przepisywania:
Aby ograniczyć go według typu obiektu, dodaj odpowiednio modele, bloki lub pomocniki do ścieżki xpath.
Na przykład:
źródło
oto mały skrypt, którego używam, aby sprawdzić, czy jakieś modele, bloki lub pomocniki są nadpisane. Niestety nie działa dla kontrolerów i uwzględnia również wyłączone moduły. Ale z mojego punktu widzenia nie jest to wielka sprawa.
Głównym pomysłem jest parsowanie plików konfiguracyjnych i poszukiwanie
<rewrite>
znacznika. Utwórz plik php na tym samym poziomie coindex.php
. Nazwijmy torewrites.php
następującymi treściami:podczas wywoływania go w przeglądarce powinieneś zobaczyć coś takiego:
oznacza to, że model
'core/layout'
zostanie zastąpiony przezNamespace_Module_Model_Core_Layout
Jeśli masz 2 lub więcej wartości w tablicy [„core / layout”], oznacza to, że wystąpił konflikt.
I możesz łatwo zidentyfikować moduł, który zastępuje coś na podstawie
Namespace
iModule
źródło
Połączyłem obie odpowiedzi i otrzymałem fajne rozwiązanie
źródło
Może nieco narzut, ale miło jest pracować z gromadzeniem różnych danych ... kod z https://github.com/firegento/firegento-debug
Do wydruku możesz użyć ...
źródło