Bài đăng

[Laravel Container] Resolve phương thức bạn dùng rất nhiều nhưng có thể chưa biết

Chào các bạn, hôm nay chúng ta sẽ "giải mã" một đoạn mã PHP khá thú vị, và tôi đảm bảo rằng sau khi đọc xong, bạn sẽ không còn cảm thấy sợ hãi khi nhìn thấy những thuật ngữ khó hiểu trong lập trình nữa! Đoạn mã này đến từ một hệ thống dependency injection container, nơi mà các đối tượng được "khởi tạo" (instantiate) một cách thông minh và tự động. Cùng tìm hiểu nhé! 1. Đặt vấn đề (Alias và Param) Đầu tiên, khi bạn gọi hàm resolve() , nó nhận vào một tham số $abstract (mà thông thường có thể là tên của một lớp hoặc một alias nào đó). Đoạn mã bắt đầu bằng việc gọi $this->getAlias($abstract) để "đổi tên" nếu cần thiết. Nghĩa là, nếu bạn truyền vào một alias, hệ thống sẽ tìm ra tên thực tế của đối tượng bạn đang cần. 2. Kích hoạt sự kiện trước khi giải quyết (Firing Events) Tiếp theo, chúng ta có một đoạn mã kiểm tra xem có cần kích hoạt sự kiện trước khi "giải quyết" (resolve) đối tượng không ( $raiseEvents ). Nếu có, phương thức $this->fi...