nette-configurationlisted
Install: claude install-skill nette/agent-plugins
## Nette DI & Services Guidelines
- **Primary services:** `services.neon` – all service definitions
- **Framework config:** `common.neon` – parameters, extensions, framework settings, includes
- **Project scaling:** Create additional files for larger projects (`api.neon`, `tasks.neon`)
- **Environment-specific settings:** `env.local.neon` for development, `env.prod.neon` for production
### Config File Includes
`common.neon` includes other files. Later files override earlier ones, so environment-specific files go last:
```neon
includes:
- services.neon
- env.local.neon # Gitignored, overrides for local dev
```
### Extensions
Register DI extensions for third-party packages or custom container builders:
```neon
extensions:
console: Contributte\Console\DI\ConsoleExtension
translation: Contributte\Translation\DI\TranslationExtension
```
### Service Definition Syntax
Use `-` for services that don't need references. Nette DI automatically resolves all constructor dependencies by type, so most services need just their class name:
```neon
services:
- App\Model\BlogFacade
- App\Model\CustomerService
- App\Presentation\Accessory\TemplateFilters
```
Give names **only when needed for `@serviceName` references** elsewhere in NEON. Unnecessary names add clutter and create a maintenance burden when classes are renamed:
```neon
services:
# Named because referenced as @pohoda
pohoda:
create: Nette\Database\Connection('odbc:Driver={...}')
autowired: false
# Using th