coldbox-dilisted
Install: claude install-skill ColdBox/skills
# ColdBox — Dependency Injection
## When to Use This Skill
Use this skill when working with DI **inside a ColdBox application**. It covers the ColdBox-specific injection DSL namespaces and integration features that are *not* available in standalone WireBox.
For WireBox fundamentals (binder config, scopes, providers, lazy properties, child injectors, object populator), consult the `wirebox` skill first.
## Language Mode Reference
Examples use **BoxLang (`.bx`)** syntax by default.
| Concept | BoxLang (`.bx`) | CFML (`.cfc`) |
|---------|-----------------|---------------|
| Class declaration | `class [extends="..."] {` | `component [extends="..."] {` |
| Property DI annotation | `@inject` above `property name="svc";` | `property name="svc" inject="svc";` |
---
## How WireBox Integrates with ColdBox
ColdBox automatically bootstraps a WireBox injector at startup. Key integration points:
- **Binder location**: `config/WireBox.cfc` (optional — ColdBox works without one and auto-maps `models/`)
- **Injector access**: Available at `controller.getWireBox()` or via `inject="wirebox"`
- **Auto-scan**: The `models/` folder is automatically registered; every CFC is accessible by its name
- **ColdBox objects**: Handlers, interceptors, and scheduled tasks are automatically wired by the framework
- **Module isolation**: Each ColdBox module gets its own WireBox namespace and can declare its own mappings
---
## ColdBox Binder
```cfscript
// config/WireBox.bx (or .cfc)
class exten