Existe-t-il un moyen de répertorier toutes les réécritures et peut-être d'autres conflits potentiels en plus d'examiner tous les fichiers de configuration? Je dois analyser certains projets avec beaucoup d'extensions et de modifications personnalisées et j'aimerais automatiser autant que possible cela.
La chose la plus importante est de détecter les extensions qui réécrivent la même classe, mais j'aimerais aussi avoir une liste de toutes les réécritures pour garder une vue d'ensemble. Pour le moment, je gère cette liste manuellement dans une feuille de calcul.
J'ai trouvé cette extension ("Extension Conflict") sur Magento Connect mais à en juger par les critiques et les notes de version, elle semble obsolète.
magento-1
extensions
overrides
configuration
code-analysis
Fabian Schmengler
la source
la source
grep
Réponses:
Jetez un œil à l' utilitaire n98-magerun :
Vous pouvez également consigner les conflits dans un fichier XML de style JUnit pour une analyse plus approfondie, par exemple sur un serveur d'intégration continue.
Avertissement: semi-auto-lien / Je suis impliqué dans ce projet
la source
Voici un petit one-liner qui vous donne toutes les réécritures actives:
Pour le limiter par type d'objet, ajoutez des modèles, des blocs ou des assistants au xpath respectivement.
Par exemple:
la source
voici un petit script que j'utilise pour vérifier si des modèles, des blocs ou des aides sont écrasés. Malheureusement, cela ne fonctionne pas pour les contrôleurs et il prend également en compte les modules désactivés. Mais de mon point de vue, ce n'est pas grave.
L'idée principale est d'analyser les fichiers de configuration et de rechercher la
<rewrite>
balise. Créez un fichier php au même niveau queindex.php
. Appelons-lerewrites.php
, avec ce contenu:lorsque vous l'appelez dans un navigateur, vous devriez voir quelque chose comme ceci:
cela signifie que le modèle
'core/layout'
est remplacé parNamespace_Module_Model_Core_Layout
Si vous avez 2 ou plusieurs valeurs dans le tableau ['core / layout'], cela signifie qu'il y a un conflit.
Et vous pouvez facilement identifier le module qui écrase quelque chose en fonction
Namespace
etModule
la source
j'ai combiné la réponse et obtenu une bonne solution
la source
Peut-être un peu de surcharge mais c'est agréable de travailler avec la collecte de données varien ... code de https://github.com/firegento/firegento-debug
Pour la sortie, vous pouvez utiliser ...
la source