Installs into .claude/skills of the current project.
Are you the author of Interfaces And Di?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/jpcaparas-interfaces-and-di)
---
name: laravel:interfaces-and-di
description: Use interfaces and dependency injection to decouple code; bind implementations in the container
---
# Interfaces and Dependency Injection
Define narrow interfaces and inject them where needed. Bind concrete implementations in a service provider.
```php
interface Slugger { public function slug(string $s): string; }
final class AsciiSlugger implements Slugger {
public function slug(string $s): string { /* ... */ }
}
$this->app->bind(Slugger::class, AsciiSlugger::class);
```
Benefits: easier testing (mock interfaces), clearer contracts, swap implementations without touching consumers.