Hướng dẫn dùng abstract traits trong PHP

Lời mở đầu

Xin chào các bạn 😄 trong bài viết lần này chúng ta cùng nhau tìm hiểu về Traits trong PHP, và cách sử dụng Traits nha!

Giới thiệu về Traits

PHP là một ngôn ngữ kế thừa đơn, một lớp con chỉ có thể kế thừa từ một lớp cha duy nhất. Điều này có thể đặt ra vấn đề về việc sử dụng lại mã, nếu lớp cần kế thừa nhiều phương thức.

Từ PHP 5.4 trở đi, PHP đã hỗ trợ Traits để khắc phục những giới hạn của đơn kế thừa. Traits có thể hiểu là nơi tập hợp một nhóm phương thức cho phép lập trình viên tận dụng khả năng tái sử dụng lại code một cách đơn giản hơn là kế thừa như trước.

Vì sao nên sử dụng Traits

  • Traits có chức năng gom lại các phương thức và thuộc tính mà chúng ta muốn sử dụng lại nhiều lần từ đó giúp giảm việc lặp code..
  • Traits tránh được việc kế thừa nhiều tầng khá phức tạp trong tổng thể hệ thống, sẽ khó maintain sau này.
  • Định nghĩa ngắn gọn, sau đó có thể đặt sử dụng ở những nơi cần thiết, sử dụng được ở nhiều class cùng lúc.
  • Các phương thức trong Traits có thể bị override lại trong class sử dụng nó.
  • Traits trong PHP có thể có các phương thức và phương thức trìu tượng để có thể sử dụng trong nhiều lớp và các phương thức có thể có bất kì mức độ truy cập nào [public, private hoặc protected].

Nhược điểm của Traits

  • Traits được tạo ra chủ yếu dựa trên tư tưởng “copy and paste” code giữa các class. Điều này có thể tạo ra Traits mang quá nhiều trách nhiệm dẫn đến vi phạm nguyên tắc Single Responsibility Principle trong SOLID.
  • Sử dụng Traits khiến chúng ta khó khăn trong việc xem tất cả các phương thức của một class, do vậy khó để có thể phát hiện được một phương thức bất kỳ có bị trùng lặp hay không

Cách sử dụng Traits

Tạo một Traits thật dễ dàng

Chủ Đề