Thực hiện mở rộng php

- Đố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é