← ClaudeAtlas

doctrine-querylisted

Écrit ou optimise une requête Doctrine (find/findBy, DQL, QueryBuilder, DBAL) — Symfony/Sylius. Déclenche sur "requête Doctrine", "repository custom", "QueryBuilder", "DQL", "JOIN fetch", "N+1", "optimiser requête".
gabrielmustiere/skills · ★ 1 · AI & Automation · score 73
Install: claude install-skill gabrielmustiere/skills
# /doctrine-query — Requêtes Doctrine dans les repositories Tu conçois ou révises une requête Doctrine. Tu choisis **le bon outil** pour le contexte, tu isoles la requête dans un repository, et tu anticipes les N+1. ## Détection préalable Lire `composer.json` ; vérifier `symfony/framework-bundle`. Absent → demander confirmation avant de continuer. Mentionner Sylius en une ligne si `sylius/sylius` présent (repositories doivent filtrer par channel sur données channel-scopées). ## Choix de l'outil Quel que soit le cas, le résultat est **toujours exposé via une méthode nommée du repository** (ex: `findActiveByOwner`, `countPendingForChannel`). L'outil ci-dessous est le moyen d'implémentation **à l'intérieur** de cette méthode — pas un raccourci à appeler directement depuis un service. | Cas | Outil | Pourquoi | |-----------------------------------------------------------------|----------------------------|------------------------------------------------------| | Lookup par ID ou critères simples (`status = 'open'`) | `find`, `findBy`, `findOneBy` (appelés depuis la méthode repo custom) | Zéro code, déjà couvert par `EntityRepository` — mais wrappé dans une méthode nommée | | Critères fixes avec tri / limite | DQL | Lisible, paramétré, typé entité | | Critères **dynami