Trong Laravel 12, “design pattern” không phải chỉ 1 cái duy nhất, mà là tổ hợp nhiều pattern được dùng để tổ chức code sạch, dễ mở rộng, dễ test.
Nếu bóc tách ra đúng bản chất thì Laravel đang dùng mấy nhóm chính sau:
Laravel vẫn xoay quanh MVC:
👉 Nhưng Laravel không phải MVC thuần, mà là “MVC + Service Layer + IoC”
Đây là cái làm Laravel “khác CI3 rõ rệt”
Ví dụ:
class UserController {
public function __construct(UserService $userService) {
$this->userService = $userService;
}
}
👉 Laravel tự resolve UserService
👉 Đây là “xương sống” của Laravel
Laravel dùng:
$this->app->bind(UserRepository::class, EloquentUserRepository::class);
👉 Pattern:
Ví dụ:
Cache::get('key');
DB::table('users');
👉 Thực tế:
👉 Ưu:
Không bắt buộc, nhưng dev Laravel hay dùng:
interface UserRepository {
public function find($id);
}
👉 Giúp:
Model trong Laravel:
$user = User::find(1); $user->save();
👉 Model = luôn cả data + behavior
👉 Ưu:
Request đi qua pipeline:
Request → Middleware A → Middleware B → Controller
👉 Pattern:
event(new UserRegistered($user));
Listener sẽ handle
👉 Pattern:
dispatch(new SendEmailJob());
👉 Pattern:
Laravel có:
Pipeline::send($data)
->through([...])
->then(...)
👉 Dùng trong:
Laravel 12 = Framework đa pattern
| Thành phần | Pattern |
|---|---|
| Routing + Controller | MVC |
| Service Container | IoC + DI |
| Facade | Facade |
| Eloquent | Active Record |
| Middleware | Chain of Responsibility |
| Events | Observer |
| Queue | Command |
| Service Provider | Factory / Registry |
Với hệ thống lớn (multi-site, high load kiểu bạn đang làm):
👉 Laravel chỉ là “framework”, còn scale được hay không là do architecture bạn build lên trên nó