SOLID in short
1/ S
(Single Responsibility Principle)
A class should have only one job.
Keep controllers and models thin.
Move logic to services or traits.
2/ O
(Open/Closed Principle)
Extend behavior without modifying existing code
Use interfaces or abstract classes.
Avoid editing core logic for new features.
3/ L
(Liskov Substitution Principle)
Subclasses must work like their parent class.
Methods should keep expected behavior.
Avoid overriding with incompatible logic.
4/ I
(Interface Segregation Principle)
Interfaces should be small and specific.
No class should depend on unused methods.
Split large interfaces into smaller ones.
5/ D
(Dependency Inversion Principle)
Depend on interfaces, not concrete classes.
-
Use Laravel’s Service Container for injection.
- use Laravel’s Service Container
Common Laravel Mistakes That Violate SOLID
Fat controllers violating SRP.
Too much logic in Models
Direct Database Queries in Controllers (Violates SRP & DIP)
Not using contracts/interfaces, leading to tight coupling (DIP).
Laravel Tools & Features That Support SOLID
Service Providers & Dependency Injection (DIP).
Custom Requests
Repositories & Interfaces (OCP, LSP).
Middleware for separating concerns (SRP).
Policies & Gates for clean authorization logic (SRP).
Top comments (0)