[Symfony4] Sự khác nhau giữa Controller và AbstractController

Sau một thời gian tìm hiểu Symfony4 tôi nhận thấy rằng hầu hết các controller trong “demo” hoặc “skeleton” đều extends AbstractController thay cho Controller.

Câu hỏi đặt ra là: Không xét về mặt ngữ nghĩa kỹ thuật (abstract và class) thì 2 cái này nó có gì khác nhau, các phương thức và property có gì khác xa nhau không? Và điều quan trọng là khi nào thì dùng nó?

Câu trả lời mà tôi tìm được như sau:

  1. AbstractController mới xuất hiện từ symfony4. Controller đã có từ những version trước.
  2. Cả 2 không khác nhau nhiều, hầu hết các method và property đều giống nhau
  3. AbstractController có một số điểm hạn chế so với Controller không cho phép các phương thức: $this->get(), $this->container->get()

Tham khảo: https://github.com/symfony/symfony-docs/issues/9926

Leave a Reply

Your email address will not be published. Required fields are marked *