#1. Filesystem Abstraction (Flysystem)
Laravel không làm việc trực tiếp với file trên disk. Nó wrap League\Flysystem.
- Lợi ích: Code của bạn hoàn toàn giống nhau khi dùng Local disk, Amazon S3, hay FTP. Chỉ cần đổi cấu hình ở
filesystems.php.
#2. Helper Functions
Helper không phải là hàm toàn cục thông thường. Chúng được tạo ra để “bọc” các service trong Container.
- Bản chất:
config()gọiapp('config'),request()gọiapp('request'). - Lưu ý: Helper làm giảm khả năng test (vì khó mock hơn Facade/DI). Chỉ dùng cho các view hoặc code nghiệp vụ rất đơn giản.
#3. Câu hỏi nhanh
Q: Tại sao nói Filesystem của Laravel là “Adapter Pattern”? A: Vì nó cung cấp một interface chung duy nhất cho rất nhiều driver khác nhau (S3, Local, Rackspace), cho phép ứng dụng của bạn không phụ thuộc vào công nghệ lưu trữ cụ thể.
Q: Khi nào KHÔNG nên dùng helper? A: Trong các class Service/Action phức tạp. Nên dùng Dependency Injection để dễ dàng unit test hơn.