← ClaudeAtlas

service-wirelisted

Câble les arguments d'un service Symfony — scalaires, `%env(...)%`, `#[Autowire]`, bindings, alias, `#[Target]`. Déclenche sur "Cannot autowire", "injecter paramètre", "#[Autowire]", "%env()%", "alias service".
gabrielmustiere/skills · ★ 1 · AI & Automation · score 73
Install: claude install-skill gabrielmustiere/skills
# /service-wire — Câbler les arguments d'un service > **Utilise quand** l'autowiring échoue : argument scalaire, `%env()%`, choix d'implémentation, alias. > **Pas quand** tu déclares un service neuf → `/symfony:service-define`. > **Pas quand** tu collectes plusieurs services tagués → `/symfony:service-tags`. Tu règles les cas où l'autowiring par type-hint ne suffit pas : argument scalaire, variable d'environnement, choix d'implémentation pour une interface, service nommé. Tu privilégies `#[Autowire]` sur l'argument (localisé, lisible) plutôt que d'éparpiller du YAML dans `services.yaml`. ## Détection préalable (obligatoire) 1. Lire `composer.json` — vérifier `symfony/framework-bundle`. 2. Lire `config/services.yaml` pour repérer `_defaults` et les éventuels `bind:` déjà en place. 3. Lire `config/packages/*.yaml` et `.env` / `.env.local` pour identifier les paramètres et env vars déjà déclarés. 4. Si le service n'est pas encore enregistré → passer par `/symfony:service-define` d'abord. ## Règles fondamentales - **Attribut `#[Autowire]` par défaut** : configuration localisée sur l'argument, visible à la lecture de la classe. Ne basculer en YAML (`arguments:` ou `_defaults.bind`) que si plusieurs services partagent le même câblage ou si la classe n'est pas éditable (vendor). - **Pas de `%parameter%` en dur dans le code** : un scalaire d'infra (URL, clé) vient de `parameters` (YAML) ou d'une env var, jamais d'un `const` dans la classe. - **Env vars via `%env(...)%`** : jama