Votre code Magento 2 vous coûte plus que vous ne le pensez

EasyAudit détecte les anti-patterns qui ralentissent chaque requête et compliquent chaque mise à jour. Scannez depuis le CLI, le CI/CD ou directement depuis votre navigateur — et laissez le Fixer corriger automatiquement les problèmes.

19 Processeurs d'analyse
~455 KB PHAR autonome
< 2 min Temps d'installation
0 Dépendances
MIT Sous licence

Le coût caché des mauvaises pratiques

La propre documentation d'Adobe met en garde contre les plugins around et les dépendances à des classes concrètes. Mais les avertissements ne corrigent pas les bases de code — et l'impact est mesurable.

Plugins Around : le tueur de performance silencieux

Le framework d'interception de Magento effectue environ 67 000 vérifications par chargement de page. Chaque plugin around ajoute un callback $proceed() à la pile — des traces plus profondes, un débogage plus difficile et des chaînes bloquées si $proceed() n'est jamais appelé.

Sur une page produit, la résolution des plugins à elle seule représente ~160ms de surcharge. C'est plus de temps que certaines plateformes n'en ont besoin pour afficher une page entière.

La solution : si un plugin ne modifie que les arguments, ce devrait être un before. S'il ne modifie que la valeur de retour, un after. EasyAudit les détecte. Le Fixer les réécrit.

Injection de classes concrètes : bombe à retardement des mises à jour

Adobe garantit la rétrocompatibilité uniquement pour les interfaces marquées @api. Chaque dépendance à une classe concrète est un pari non protégé sur le fait que la signature du constructeur ne changera pas.

Entre Magento 2.4.6 et 2.4.7, le constructeur de ProductRepository a changé — cassant chaque module qui étendait la classe concrète. Signalé comme un problème P1 sur GitHub.

La solution : remplacer les classes concrètes par l'interface appropriée. EasyAudit les détecte dans toute votre base de code. Le Fixer génère les correctifs.

Proxys manquants : chaque commande en paie le prix

Vous lancez bin/magento cache:flush ? Magento instancie d'abord chaque commande enregistrée avec son arbre de dépendances complet. Pas de proxy = des centaines d'objets inutiles à chaque appel CLI.

Multipliez par la fréquence des crons et le nombre de commandes personnalisées dans votre projet. Cette surcharge tourne 24h/24, 7j/7, que la commande soit la vôtre ou non.

La solution : utiliser des proxys pour les dépendances lourdes dans di.xml afin qu'elles ne se chargent que lorsque la commande est réellement exécutée. EasyAudit les détecte. Le Fixer génère la configuration.

count() sur les Collections : 50 000 objets pour un seul entier

Appeler count($collection) déclenche load() — un SELECT * complet qui hydrate chaque ligne en objet PHP, juste pour les compter. Sur un catalogue de 50 000 articles, c'est un pic de mémoire pour un simple nombre.

getSize() fait le même travail avec un seul SELECT COUNT(*). Pas de chargement, pas d'hydratation, pas de pic de mémoire.

La solution : remplacer count() par getSize(). EasyAudit trouve chaque occurrence. Le Fixer les réécrit.

Comment ça marche

Choisissez votre méthode de scan

Gratuit
Terminal icon Terminal icon

CLI / Docker

Une commande. Scannez en local ou dans votre pipeline.

Installer
Gratuit
Git branch icon Git branch icon

GitHub Actions

Scans automatisés à chaque push, résultats dans Code Scanning.

Configurer
crédits
Browser window icon Browser window icon

Scanner web

Collez un lien Packagist, une URL de dépôt Git ou envoyez une archive. Aucune installation requise.

Connexion

Puis corrigez ce qui compte

Lancez le Fixer sur les problèmes de votre choix. Obtenez des fichiers .patch standard que vous relisez et appliquez. C'est tout.

Obtenir des crédits Fixer
Browser mockup showing the EasyAudit web scanner interface with an input field for a Packagist URL, a drag-and-drop area for archive upload, and a scan button

Pas d'installation ? Pas de problème.

Collez un lien Packagist, une URL de dépôt Git public ou envoyez une archive .zip / .tar.gz. EasyAudit scanne le code dans un conteneur sécurisé et isolé et fournit le même rapport que le CLI — directement dans votre navigateur.

Les scans web utilisent des crédits. Le coût varie selon la taille du projet. Les petits modules ne coûtent que quelques crédits ; les installations Magento complètes coûtent davantage.

Idéal pour :

  • Évaluer une extension tierce avant de l'installer
  • VĂ©rifications rapides quand vous n'avez pas Docker ou PHP en local
  • Partager des rĂ©sultats avec un client sans lui demander d'exĂ©cuter quoi que ce soit
10 crédits gratuits à l'inscription

Ce que corrige EasyAudit

Around → Before/After

Plugins around inutiles qui devraient ĂŞtre des before ou after

3 crédits

Injection de classes concrètes

Dépendances sur des implémentations au lieu d'interfaces

3 crédits

Utilisation directe d'ObjectManager

Dépendances cachées qui cassent l'injection de dépendances et la testabilité

2 crédits

Configuration de proxy manquante

Classes lourdes instanciées là où un proxy devrait être utilisé

1 crédit

Collection sans Factory

Collections créées sans le pattern factory

1 crédit

Repository sans interface

Classes repository n'implémentant pas leur contrat d'interface

1 crédit

La détection est toujours gratuite via CLI et CI/CD. Les crédits sont utilisés pour la génération automatique de correctifs et pour les scans web. Un crédit = une correction par fichier.

Correctifs automatiques. ContrĂ´le total.

Le Fixer d'EasyAudit génère des correctifs standard au format unified diff pour chaque problème qu'il peut corriger. Aucun code n'est modifié sans votre approbation explicite.

Comment ça marche :

  1. Lancez l'audit (CLI ou CI/CD)
  2. Demandez des correctifs pour les problèmes de votre choix
  3. Relisez les fichiers .patch générés
  4. Appliquez avec git apply — c'est fait

Les correctifs sont générés en quelques millisecondes et adaptés à votre base de code. Pas de templates génériques, pas de copier-coller depuis Stack Overflow.

Code diff view showing a concrete class injection being replaced by an interface, with red deleted lines and green added lines

Intégration CI/CD native

Ajoutez EasyAudit à votre pipeline en 5 lignes. Scannez à chaque push, affichez les problèmes dans GitHub Code Scanning et corrigez automatiquement avec une PR — le tout sans quitter votre workflow.

# .github/workflows/easyaudit.yml
- uses: actions/checkout@v6
- run: |
    docker run --rm -v $PWD:/workspace ghcr.io/crealoz/easyaudit:latest \
      scan /workspace --format=sarif --output=/workspace/report.sarif
- uses: github/codeql-action/upload-sarif@v4
  with:
    sarif_file: report.sarif
GitHub pull request showing EasyAudit Code Scanning annotations inline on changed files, highlighting a concrete class injection warning

Tarifs

L'audit CLI est gratuit, pour toujours. Les crédits sont utilisés pour la génération automatique de correctifs et les scans web.

Gratuit

€0

10 crédits à l'inscription

Essayez le Fixer sur quelques fichiers

Créer un compte

Ponctuel

€4.99

25 credits

Sans engagement, achat unique

Starter

€2.99/mo

50 credits/mo

Développeurs indépendants

S'abonner
Meilleur rapport qualité-prix

Pro

€9.99/mo

250 credits/mo

La plupart des projets en un mois

S'abonner

Agency

€24.99/mo

1000 credits/mo

Projets multi-clients

S'abonner

Un crédit = une correction automatique par fichier. Le coût des scans web varie selon la taille du projet. La détection CLI/CI est toujours gratuite et illimitée.

Démarrez en moins de 2 minutes

Avec Docker

docker run --rm -v $PWD:/workspace ghcr.io/crealoz/easyaudit:latest scan /workspace
Voir la documentation Docker →

Avec PHAR

php easyaudit.phar scan /path/to/magento --format=sarif
Télécharger depuis les releases →

Votre base de code ne va pas se nettoyer toute seule

Commencez par un audit gratuit. Voyez ce qu'EasyAudit détecte. Corrigez ce qui compte.