skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
dev-toolings/superpowers-symfony107 installs

interfaces-and-autowiring

Master Symfony Dependency Injection with autowiring, #[Target] interface binding, decoration, and tagged services

How do I install this agent skill?

npx skills add https://github.com/dev-toolings/superpowers-symfony --skill interfaces-and-autowiring
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill provides architectural guidance for Symfony projects. It carries a low risk common to tools that process external files, as malicious instructions within project code could theoretically influence the agent's logic.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Interfaces And Autowiring (Symfony)

Use when

  • A service depends on a concrete class and must be swappable or replaced in tests.
  • Several implementations of one interface exist and the right one must be injected.
  • Adding cross-cutting behavior (logging, caching, retries) around an existing service.
  • Injecting scalars, parameters, env vars, or every service carrying a tag.
  • Autowiring fails with "cannot autowire" or an ambiguous type.

Default workflow

  1. Extract a focused interface for what the consumer actually needs.
  2. Let autowiring bind it when there is a single implementation.
  3. With several implementations, pick one per consumer through a named alias and #[Target].
  4. Add behavior around a service with #[AsDecorator] instead of editing or extending it.
  5. Inject scalars with #[Autowire] and tagged collections with #[AutowireIterator].
  6. Confirm the result with debug:autowiring for each type involved.

Guardrails

  • Constructor injection with private readonly dependencies; no setter injection, no container access.
  • Keep interfaces small: one consumer need per interface.
  • Make services final by default and decorate them rather than extend them.
  • Use lazy services or service closures only for expensive dependencies that some paths skip.

Progressive disclosure

  • Use this file for execution posture and risk controls.
  • Open references when deep implementation details are needed.

Output contract

  • Interfaces and the bindings or aliases that select each implementation.
  • Decorators or tagged collections, with their priority.
  • The debug:autowiring output for the types involved.

References

  • reference.md

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/dev-toolings/superpowers-symfony/interfaces-and-autowiring">View interfaces-and-autowiring on skillZs</a>