Hướng dẫn interface real time example in php - ví dụ về giao diện thời gian thực trong php

Đây là một câu hỏi tuyệt vời và tôi đã thấy mọi người hỏi nó nhiều lần. Vì vậy, tôi sẽ cố gắng đơn giản hóa nó cho bạn, [phần giao diện cuối cùng].[interface part comes in the end].

Trước hết bạn không nhất thiết phải sử dụng OOP ở mọi nơi, hầu hết các mã cốt lõi WordPress được viết bằng PHP thủ tục [không chắc chắn về các bản dựng hiện tại] và nó không phải là điều xấu. Hầu hết các lần nó đơn giản hóa mọi thứ cho các lập trình viên mới, và đó là toàn bộ điểm sử dụng OOP i.e để thêm sự trừu tượng hóa sự trừu tượng, vì vậy khi lập trình viên đang làm việc trên một chức năng cụ thể, anh ta không phải lo lắng về các khía cạnh khác. Vì vậy, ví dụ nếu tôi muốn lưu trữ một hình ảnh từ mẫu đăng ký, tôi sẽ có 2 lớp. Một cho người dùng và một cho hình ảnh. Vì vậy, đây là cách nó sẽ trông như thế nào.

/*********** User Class ***********/

        Class User
        {
          public function storeUser[$request, Image $image]
          {
             // Fetch Image from the form request and pass it to the

             $image = $request->input['image'];
             $image->uploadImage[$image, $imagePath];

             // Now upload other user attributes
          }
        }

/ ********* Image Class **********/

        Class Image
        {
          public function uploadImage[$image, $imagePath]{
             // Code to UploadImage
          }
        }

Tôi thường có một lớp gọi là người dùng và một phương thức gọi là StoreUser trong đó, nơi tôi sẽ thêm người dùng vào cơ sở dữ liệu. Bây giờ tôi cũng sẽ có một lớp khác được gọi là hình ảnh với một phương thức gọi là uploadImage.

Bạn có thể đã làm điều tương tự với một chức năng cũng tốt, nhưng nếu bạn muốn một tính năng khác cho phép khi người dùng cập nhật hồ sơ của mình, xóa hình ảnh cũ và tải lên một tính năng mới. Đối với điều này, bạn sẽ phải bao gồm một chức năng khác, sẽ có tất cả các mã tải lên và một số mã khác để xóa hình ảnh trước đó.

Nhưng bây giờ bạn đang lặp lại chính mình, và tránh nguyên tắc khô [không lặp lại chính mình]. Nhưng hãy nói rằng bạn có một chức năng khác để DeleteUserImage sẽ xóa hình ảnh và sau đó gọi chức năng tải lên.. But lets say you have another function for deleteUserImage which would delete the image and then in turn call the upload function.

Vì vậy, nếu đây là những gì bạn đã nghĩ về việc làm, bạn thực sự đã sử dụng tiềm thức OOP, nhưng theo một cách rất lộn xộn, bởi vì một lớp chỉ là một tập hợp các chức năng và biến số. Nhưng bạn đang thiếu nhiều chức năng khác như phạm vi, tĩnh, một số thứ tuyệt vời khác và giá yêu thích của tôi này :]

Số lượng trừu tượng mà bạn thêm có thể phụ thuộc vào thời hạn, khả năng mở rộng trong tương lai, v.v. Bạn không cần phải hoàn toàn phát điên với sự trừu tượng, nhưng một quy tắc đơn giản là sự trừu tượng hơn mà bạn có mã của bạn dễ quản lý và linh hoạt hơn.

Hãy nói cho một lập luận rằng bạn đã tạo ứng dụng của mình trong PHP và MySQL và ra mắt nó, nhưng ứng dụng đã trở nên phổ biến sau đó bạn dự đoán. Và đột nhiên bạn có hàng triệu người dùng, nhưng máy chủ MySQL của bạn bằng cách nào đó không hỗ trợ số lượng người dùng khổng lồ này và bạn muốn chuyển sang cơ sở dữ liệu khác như Postgres hoặc Cassandra nhưng tất cả các truy vấn MySQL của bạn đều được trộn lẫn với mã PHP và không có Cách không đau để đạt được điều này nhưng để tạo ra mọi thứ từ đầu. Đây là một vấn đề phổ biến mà nhiều tổ chức khổng lồ đã thử nghiệm bao gồm Twitter và Facebook. Nhưng nếu bạn đã tạo ứng dụng của mình bằng trừu tượng, nơi tất cả các truy vấn của bạn đi trong một lớp, bộ điều khiển của bạn sẽ đi theo phương tiện khác. Tất cả những gì bạn phải làm chỉ là sửa đổi trình điều khiển và truy vấn trong một vài tệp và bạn sẽ bắt đầu sử dụng một cơ sở dữ liệu khác cùng nhau. And suddenly you have millions of users, but your mysql server is somehow not supporting this huge number of users and you want to shift to another database like postgres or cassandra but all your mysql queries are mixed up with the php code, and there is no painless way of achieving this but to create everything from scratch. This is a common problem that many huge organizations had experinced including twitter and facebook. But if you created your app with abstractions, where all your queries go in one class, your controllers go in another. All you would have to do is just modify the driver and queries in a few files and you will start using another database all together.

Bây giờ chúng ta hãy quay lại câu hỏi ban đầu về giao diện. Bạn có thể nghĩ rằng các giao diện chỉ là một sự lãng phí thời gian vì nó chỉ đơn giản là một danh sách tất cả các phương pháp mà bạn sẽ thực hiện trong lớp, phải không? Vâng, ít nhất là tôi khi tôi bắt đầu OOP. Nhưng hóa ra tôi thật ngu ngốc, bởi vì vào thời điểm đó, tôi không biết về các nguyên tắc vững chắc. You might think interfaces are just a waste of time because it is simply a list of all the methods that you are going to implement in the class, Right? Well atleast it seemed to me when i started OOP. But it turns out that i was stupid, because at the time, i didn't knew about the SOLID Principles.

Solid thực sự là một chữ viết tắt của 5 trong số các nguyên tắc tốt nhất từng được viết để lập trình và họ hỗ trợ lẫn nhau rất tốt. "O" trong các dấu hiệu rắn cho "nguyên tắc mở và đóng", và điều đó có nghĩa là phương pháp được đóng cho các thay đổi nhưng mở cho các phần mở rộng. Nói một cách đơn giản, điều đó có nghĩa là một khi bạn có một ứng dụng làm việc cơ bản, bạn không bao giờ nên sửa đổi các tham số phương thức hiện có mà bạn có trong giao diện của mình bởi vì nếu các tệp khác cũng đang sử dụng lớp đó, nó sẽ phá vỡ chúng. Và cách bạn thêm hạn chế là thông qua các giao diện. Vậy làm thế nào để bạn thêm một tính năng mới mà không cần sửa đổi phương thức? Vâng, bạn không trực tiếp sửa đổi một phương thức, bạn mở rộng nó. ever written for programming, and they support each other very well. "O" in the SOLID stands for "Open and Closed Principle", and what it means is that the method is Closed for changes but Open for Extensions. In simple words what that means is that once you have a basic working app, you should never modify the existing method parameters that you have in your interface because if other files are also using that class it would break them. And the way you add restriction to is through interfaces. So how do you add a new feature without modifying the method? well you dont directly modify a method, you extend it.

Thông qua việc triển khai các giao diện, người gọi của đối tượng chỉ quan tâm đến giao diện của đối tượng, chứ không phải việc triển khai các phương thức của đối tượng.

  • Tên và đối số của các phương thức có thể được chỉ định bởi một giao diện, nhưng không phải là nội dung của chúng.
  • Tất cả các lớp thực hiện giao diện phải thực hiện tất cả các phương thức của giao diện.
  • Nhiều giao diện có thể được thực hiện bởi một lớp duy nhất.
  • Từ khóa "Giao diện" được sử dụng để khai báo giao diện.
  • Các phương thức không Abstract không thể được duy trì bởi các giao diện.

Giao diện trong PHP là gì?

Một giao diện trong PHP thiết lập một hợp đồng mà một lớp phải tuân thủ. Một giao diện là một bản thiết kế cho các lớp, giống như lớp PHP dành cho các đối tượng. Về những gì có thể được gọi, cách gọi nó và những gì sẽ được trả lại, bất kỳ lớp nào thực hiện một giao diện nhất định có thể được dự kiến ​​sẽ hoạt động theo cùng một cách.

Giao diện {// khai báo các trường không đổi // Các phương thức khai báo tóm tắt // theo mặc định. }

Người dùng có thể xây dựng các chương trình bằng cách xác định các phương thức công khai mà một lớp phải thực hiện, mà không phải lo lắng về các sắc thái và chi tiết cụ thể về cách thực hiện các phương thức. Cấp độ trừu tượng tiếp theo là những gì nó được gọi là. Nó tương tự như các quy trình trừu tượng và các nhóm trừu tượng. Một giao diện được phân loại là một lớp, ngoại trừ từ khóa lớp được thay thế bằng từ khóa giao diện và chỉ các nguyên mẫu tính năng được xác định. Không có biến dữ liệu trong GUI. GUI đảm bảo rằng tất cả các phương pháp mà một lập trình viên muốn hoạt động được liệt kê theo một cách thích hợp.

Các lập trình viên được hưởng lợi từ các giao diện theo nhiều cách khác nhau. & NBSP;

  • Họ cho một nhà phát triển cơ hội tham khảo các đối tượng theo cách trừu tượng hơn.
  • Các giao diện cũng cho phép bạn chuyển các triển khai nhanh hơn và dễ dàng hơn nhiều so với bạn có thể nếu bạn lập trình thành một sự cụ thể. & NBSP;
  • Cuối cùng, các giao diện có thể được sử dụng trong mã của chúng tôi để thực hiện các hợp đồng. Khi một lớp thực hiện giao diện của chúng tôi, chúng tôi có thể quyết định cụ thể những hành vi hoặc phương pháp nào, nó nên có. & NBSP;
  • Vào cuối ngày, hầu hết mọi khái niệm vững chắc đều liên quan đến việc sử dụng giao diện theo một cách nào đó, vì vậy hiểu cách các giao diện hoạt động có lợi.

Giao diện giúp hoàn thành mục tiêu:

  • Chúng cho phép đề cập đến các đối tượng [ví dụ, xe VAR: Xe có thể đề cập đến bất kỳ xe, xe tải hoặc phương tiện khác] [và không quan tâm đến loại nào.] Điều này xảy ra trong "thời gian chương trình."
  • Hàm chính xác được liên kết với đối tượng thực được sử dụng khi hàm động cơ khởi động [] được gọi. Điều này xảy ra trong "thời gian chạy."
  • Khi một lớp thực hiện thực hiện một giao diện, họ sẽ cho phép lập trình viên xây dựng các chức năng duy nhất được yêu cầu trong lớp đó.
  • Điều này cho phép tất cả các đối tượng trong một "bộ sưu tập" các đối tượng tương tự được xử lý theo loại "Cấp cao" của tập hợp thay vì loại cụ thể của mỗi đối tượng riêng lẻ.

Tạo một giao diện

Chúng ta hãy xem xét một ví dụ về cách bạn có thể tạo giao diện trong PHP:

Example: 

Giao diện MyInterFacename {

& nbsp; & nbsp; & nbsp; & nbsp; Phương thức chức năng công khai1 [];

    } 

& nbsp; & nbsp; & nbsp; & nbsp; Phương thức chức năng công cộng2 [];

lớp myClassName thực hiện myInterfacename {

    }

& nbsp; & nbsp; & nbsp; & nbsp; Phương thức chức năng công khai1 [] {

$obj->method1[];

$obj->method2[];

?>

Giao diện MyInterFacename {

& nbsp; & nbsp; & nbsp; & nbsp; Phương thức chức năng công khai1 [];

& nbsp; & nbsp; & nbsp; & nbsp; Phương thức chức năng công cộng2 [];

  • lớp myClassName thực hiện myInterfacename {
  • & nbsp; & nbsp; & nbsp; & nbsp; Phương thức chức năng công khai1 [] {
  • & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "\N";

& nbsp; & nbsp; & nbsp; & nbsp; Phương thức chức năng công khai2 [] {

  • & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "\N";
  • $ obj = new myClassName;
  • Đầu ra
  • Đặc điểm của giao diện
  • Sau đây là một số đặc điểm của giao diện trong PHP:

Các tính năng thú vị của giao diện PHP

  • Một lớp không thể thực hiện hai giao diện có cùng tên phương thức, dẫn đến độ không đảm bảo của phương thức.
  • Cùng một từ khóa "mở rộng" có thể được sử dụng để xác định mối quan hệ kế thừa giữa các giao diện và các lớp.

Ví dụ 1: & nbsp;

  

& nbsp;

Conclusion 

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp;

Giao diện trong PHP với ví dụ là gì?

Giao diện PHP xác định một hợp đồng mà một lớp phải thực hiện. Nếu một lớp PHP là bản thiết kế cho các đối tượng, giao diện là bản thiết kế cho các lớp. Bất kỳ lớp nào thực hiện một giao diện nhất định đều có thể được dự kiến ​​có hành vi tương tự về những gì có thể được gọi, cách gọi nó và những gì sẽ được trả lại.defines a contract which a class must fulfill. If a PHP class is a blueprint for objects, an interface is a blueprint for classes. Any class implementing a given interface can be expected to have the same behavior in terms of what can be called, how it can be called, and what will be returned.

Giao diện trong OOP với ví dụ là gì?

Một giao diện là một mô tả về các hành động mà một đối tượng có thể làm ... ví dụ khi bạn lật công tắc đèn, đèn tiếp tục bật, bạn không quan tâm làm thế nào, chỉ là điều đó. Trong lập trình hướng đối tượng, một giao diện là một mô tả về tất cả các hàm mà một đối tượng phải có để trở thành "x".a description of the actions that an object can do... for example when you flip a light switch, the light goes on, you don't care how, just that it does. In Object Oriented Programming, an Interface is a description of all functions that an object must have in order to be an "X".

Sự khác biệt giữa lớp trừu tượng và giao diện trong PHP là gì?

Trong bài viết này, bạn sẽ tìm hiểu về sự khác biệt giữa lớp trừu tượng và giao diện trong PHP.... Lớp học trừu tượng ..

Tại sao chúng ta sử dụng giao diện?

Các giao diện rất hữu ích cho những điều sau: nắm bắt sự tương đồng giữa các lớp không liên quan mà không cần một cách giả tạo buộc mối quan hệ lớp học.Tuyên bố các phương pháp mà một hoặc nhiều lớp dự kiến sẽ thực hiện.Tiết lộ giao diện lập trình của một đối tượng mà không tiết lộ lớp của nó.Capturing similarities among unrelated classes without artificially forcing a class relationship. Declaring methods that one or more classes are expected to implement. Revealing an object's programming interface without revealing its class.

Bài Viết Liên Quan

Chủ Đề