- Đối với việc lập trình hướng đối tượng trong PHP, Giao diện cho phép bạn chỉ định các phương thức mà một lớp nên khai thác
- Giao diện giúp bạn dễ dàng sử dụng nhiều lớp khác nhau theo cùng một cách
- Các Giao diện sẽ được khai báo bằng từ khóa giao diện
So sánh Giao diện với Lớp trừu tượng (lớp chồng vật)
- Giao diện và “trục vật” tương đối giống nhau. Tuy nhiên, chúng tôi cũng có một số điểm khác biệt như sau
- Giao diện không được phép có các thuộc tính, trong khi lớp đối tượng có thể có
- Các phương thức trong Giao diện có phạm vi truy cập mặc định là công khai & bắt buộc phải là công khai (việc sử dụng từ khóa công khai khi khai báo phương thức là không cần thiết), trong khi các lớp đối tượng có thể là công khai hoặc được bảo vệ
- Tất cả các phương thức trong Giao diện đều mặc định là đối tượng, bạn không cần sử dụng & không thể sử dụng từ khóa trừu tượng khi khai báo nó, bạn cũng không thể viết mã cho nó
- Các lớp có thể kế thừa từ một lớp khác, đồng thời có thể khai thác một giao diện
Cách sử dụng Giao diện
- Để triển khai một Interface cho Layer thì ta sử dụng từ khóa implements
- Lưu ý. Khi khai triển một Interface cho Layer, các bạn cần phải khai báo lại tất cả các phương thức trong Interface cho Layer
Trong bài viết này chúng ta sẽ tìm hiểu về Giao diện trong PHP cùng một số cách đặt tên và khai thác Giao diện trong ngôn ngữ lập trình PHP
Giao diện trong PHP là gì?
Giao diện hay còn gọi là giao diện trong PHP là một khuôn mẫu, giúp ta tạo các khung cho một hoặc nhiều đối tượng. Nếu coi PHP là bản thiết kế cho các đối tượng thì một giao diện là bản thiết kế cho các lớp. Bất kỳ lớp nào triển khai một giao diện đã cho sẽ có cùng các hành động về những gì nó có thể được gọi, cách nó được gọi và kết quả mà nó trả về
Giao diện niệm niệm trong PHP
Giao diện trong PHP cơ bản
Chúng ta có thể lấy ví dụ về những thứ có thể phát ra âm thanh để dễ hình dung về Giao diện cơ bản trong PHP. Trong thực tế, đây có thể là tiếng chim (kêu), chó (sủa) hoặc người (hát),. Chi tiết mỗi âm thanh đều khác nhau nhưng nói chung, chúng đều có một thuộc tính là có thể phát ra âm thanh
Ta có thể ví dụ như sau
interface Vocalizer { public function vocalize(string $message): string; }Trong ví dụ trên, cho một chuỗi thông điệp $, vocalize () sẽ trả về những gì được nghe dưới dạng một chuỗi
Một giao diện sẽ không tự động làm bất kỳ điều gì. Thay vào đó, nó hoạt động như một kiểu trong PHP. Điều này có nghĩa là bạn có thể gợi ý gợi ý vào nó dưới dạng đối số hoặc trẻ về một thứ gì đó thuộc loại đó từ một hàm hoặc phương thức
Để tạo ra một yếu tố thuộc loại đó, chúng ta cần một bản khai triển có sẵn. Các lớp có thể phát triển một giao diện như sau
class Bird implements Vocalizer { public function vocalize(string $message): string { return sprintf('<tweet>%s</tweet>', $message); } } Giả sử chúng ta có một chức năng sau: function prepareMessage(string $message, Vocalizer $vocalizer): string { return $vocalizer->vocalize($message); } Hàm trên có thể được gọi với bất kỳ vocalizer $ nào, ví dụ: $chickadee = new Bird(); echo prepareMessage('a song', $chickadee); // "<tweet>a song</tweet>"Kế thừa và thay thế giao diện trong PHP
Tóm lại, giao diện trong PHP cung cấp cho chúng ta cách để cung cấp các tính năng mà không yêu cầu lớp kế thừa. Điều này sẽ vô cùng hữu ích để điều chỉnh các lớp hiện có để dễ dàng hoạt động trong các ngữ cảnh khác nhau
Giả sử ta có một lớp là Bird không khai thác Vocalizer, nhưng về cơ bản đã có chức năng tương đương thông qua phương thức tweet () như sau
class Bird { public function tweet(string $message): string { return sprintf('<tweet>%s</tweet>', $message); } }>>>Tham khảo. Key learning setting PHP
Nguyên tắc trong lập trình hướng đối tượng PHP
Khi thực hiện thiết lập hướng đối tượng, có một bộ nguyên tắc thiết kế cốt lõi được đề xuất để tạo ra kiến trúc linh hoạt, có thể bảo trì được gọi là nguyên tắc RẮN
- Nguyên tắc một người chịu trách nhiệm
- Nguyên tắc đóng mở
- Nguyên tắc thay thế Liskov
- Nguyên tắc phân tách giao diện
- Nguyên tắc nghịch đảo phụ thuộc
>>> Đọc thêm. Toán tử bậc ba trong PHP- Tìm hiểu về toán bậc ba
Xác định các yếu tố thành phần trong Giao diện trong PHP
Bây giờ chúng ta đã có ý tưởng tưởng tượng cơ bản về giao diện là gì, tại sao chúng ta có thể sử dụng một giao diện và làm thế nào chúng ta có thể phát triển một giao diện?
Các giao diện trong PHP được giới hạn ở
- Các phương thức hiển thị công khai
- Hằng số hiển thị công khai
Khả năng hiển thị của giao diện trong php giúp người dùng khi nhìn vào giao diện có thể xác định được các phương thức hay thuộc tính cố định (hoặc hằng số) sẽ có trong các đối tượng thực hiện nó.
Cách mạng khai thác nhiều giao diện trong PHP
Để khai triển nhiều giao diện, bạn cần cung cấp danh sách các giao diện được phân tách bằng dấu phẩy theo sau các từ khóa khai triển khi khai báo lớp. Ví dụ như sau
class MyCustomStorageAdapter extends AbstractAdapter implements ClearByStorageInterface, FlushableInterface, OptimizableInterface, TaggableInterface { // . . . }>>> Đọc thêm. Session trong PHP - 10 phút tìm hiểu nhanh về session trong PHP
Cách đặt tên Giao diện trong PHP
Bạn nên đặt tên giao diện của mình như thế nào? . Theo ví dụ ở đây, chúng tôi đang xác định một thứ có thể phát ra âm thanh, nên giao diện sẽ được đặt tên là Vocalizer
Cách đặt tên Giao diện trong PHP
Tuy nhiên, việc đặt tên có thể trở nên khó khăn, nếu bạn trích xuất một giao diện từ một lớp mà bạn đã xác định trước đó. Trong đó tên logic đã là tên của một lớp hiện có
Trong một số trường hợp khác nhau, bạn có thể gặp khó khăn khi đặt tên giao diện khi dự án được thực hiện từ các nền hoặc các quốc gia khác nhau. Nguyên nhân có thể là do các thành viên trong dự án không chia sẻ cùng một ngôn ngữ mẹ đẻ.
So sánh Giao diện với Lớp đối tượng
Giao diện tương tự như các lớp đối tượng. Sự khác biệt giữa các giao diện và các lớp vật chất là
- Giao diện không thể thuộc tính, trong khi các lớp đối tượng có thể
- Tất cả các phương thức giao diện phải là công khai, trong khi các lớp đối tượng của phương thức là công khai hoặc được bảo vệ
- Tất cả các phương thức trong một giao diện là hiển thị, vì vậy chúng không thể được khai thác trong mã và từ khóa đối tượng là không cần thiết
- Các lớp có thể triển khai một giao diện đồng thời kế thừa từ một lớp khác
Kết luận. Trên đây là một số kiến thức về Giao diện trong PHP. Đây là bước đầu tiên để tìm hiểu về ngôn ngữ này, hy vọng bài viết hữu ích với bạn trong quá trình học lập trình với PHP. Tìm hiểu thêm về các ngôn ngữ lập trình thông qua khóa học lập trình tại Viện công nghệ thông tin T3H bạn nhé