# Elegant Objects

> Vérifie la conformité du code PHP aux principes Elegant Objects de Yegor Bugayenko. Analyse un fichier spécifique ou tous les fichiers modifiés dans la branche.

- Skill: `majiayu000/elegant-objects-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/elegant-objects-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/elegant-objects-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/majiayu000/elegant-objects-2

---


# Elegant Objects Reviewer Skill

## Usage
```
/qa:elegant-objects [fichier.php]
```
Sans argument : analyse les fichiers PHP modifiés dans la branche.

## Workflow

1. Déterminer fichiers à analyser (argument ou git diff)
2. Vérifier les règles Elegant Objects
3. Générer rapport avec score

## Règles vérifiées

### Classes
- Classes `final` (sauf abstraites)
- Max 4 attributs
- Pas de getters/setters
- Pas de méthodes statiques
- Noms sans -er (Manager, Handler, Helper...)
- Constructeur unique et simple

### Méthodes
- Pas de retour `null`
- Pas d'argument `null`
- Corps sans lignes vides ni commentaires
- CQRS : séparation commandes/queries

### Tests
- Une assertion par test (dernière instruction)
- Noms en français décrivant le comportement
- Pas de setUp/tearDown

## Score

- Violation critique: -10 points
- Violation majeure: -5 points
- Recommandation: -2 points
- Base: 100

## References

- [Patterns de détection](references/detection-patterns.md) - Regex et règles détaillées

## Notes
- Ignorer vendor/, var/, cache/
- Controllers Symfony tolérés
- Prioriser par criticité

