Facades
Trong SkillDo Framework, ngoài việc sử dụng Dependency Injection qua hàm Constructor (tiêm phụ thuộc tự động) hoặc dùng method app(), bạn có thể lấy mọi đối tượng đã được "ràng buộc" trong Service Container ra một cách cực kỳ rảnh tay bằng Facades.
1. Facades Là Gì?
Phát âm giống từ "Pha-sát" (Fahsahd). Facade là một class có vai trò như mặt nạ (proxy/mặt tiền) đứng trước các class (Service) nằm sâu bên trong Container.
Nói cách khác: Thay vì bạn phải gọi phức tạp:
$cacheManager = app('cache');
$cacheManager->get('key');
Bạn có thể gọi trực tiếp thông qua một phương thức static, tĩnh, gọn nhẹ:
use SkillDo\Facades\Cache;
Cache::get('key');
Dù bạn đang "gọi tĩnh" hàm get(), thì đằng sau hậu trường, SkillDo đang tìm object cache thực sự đã Instantiate trong bộ nhớ và gọi động method get() trên chính nó.
Ưu điểm của Facade:
- Gọn gàng và cực kỳ dễ hiểu.
- Không phải viết hàm
__construct()dài thườn thượt. - Hỗ trợ đầy đủ IDE (Autocomplete).