Hướng dẫn why do we use classes in php? - tại sao chúng ta sử dụng các lớp trong php?

Đóng gói: Một lớp là một gói hữu ích chứa mã và dữ liệu liên quan lại với nhau, được phân lập với mọi thứ khác. Điều đó giúp di chuyển nó dễ dàng hơn mà không cần tìm kiếm các biến chính xác mà không va chạm với mã/dữ liệu hiện có.

Tất nhiên các lớp có cách sử dụng khác nhưng trong các môi trường kịch bản như PHP, tôi nghĩ rằng lợi thế lớn nhất là điều đó.

EDIT: Tôi đã bị phản đối với đối số "kế thừa mạnh hơn so với đóng gói". Tôi nghĩ rằng điều đó không áp dụng cho kịch bản kịch bản và web và tôi sẽ thử giải thích lý do tại sao:

Đầu tiên, tuổi thọ của một trang web là một cặp yêu cầu/phản hồi và lý tưởng ít hơn một giây. Trạng thái thường được bảo tồn trong các thực thể bên ngoài (phiên, cookie, DB, v.v.). Vì tuổi thọ của trang rất ngắn, nên các trạng thái có thể trong mã trang web ít hơn, giả sử, một khách hàng béo. Nó hầu như luôn luôn là những vụ nổ mã nhỏ và hoàn thành công việc liên tục. Có thể cho rằng một trang web có thể so sánh với một ứng dụng bảng điều khiển về tính đơn giản và số lượng tham số thiết kế. Mặc dù số lượng tham số đầu vào có thể là gigabyte ở dạng, mối quan hệ giữa các phần tử UI và tham số đầu vào bị giới hạn ở độ phân giải màn hình, khả năng tổng thể của người dùng với những gì anh ấy/cô ấy có thể điền vào một lúc. Do đó, trong phần lớn các trường hợp, chúng tôi có số lượng nhỏ các tham số đầu vào, có nghĩa là số lượng trạng thái nhỏ hơn. Tất nhiên trong thế giới kết hợp và "có thể thay đổi" không đúng nhưng trong trường hợp "các ứng dụng web điển hình", trạng thái nội bộ cũng nhỏ, do đó khiến cho yêu cầu của tôi trở nên hợp lý., a web page's lifetime is a request/response pair and ideally less than a second. The state is usually preserved in external entities (session, cookies, db etc). Since the page's lifetime is very short, possible states in a web page code are less than, say, a fat client. It's almost always small bursts of code running and finishing the work continuously. Arguably a web page is comparable to a console application in terms of simplicity and number of design parameters. Although number of input parameters can be gigabytes in a form, the relation between UI elements and input parameters are limited to screen resolution, a user's overall capability to what he/she can fill in at once. Therefore in majority of cases we have small number of input parameters, meaning smaller number of states. Of course in combinatorial and "mutable" world that's not true but in the case of "typical web applications", internal state is also small, hence making my claim plausible.

Đầu vào và đầu ra trong một ứng dụng web chủ yếu giống nhau: Đầu vào là các tham số truy vấn hoặc dữ liệu biểu mẫu và đầu ra là một tài liệu HTML. Do đó, trong suốt thời gian ngắn, mã sản xuất đầu ra và xử lý đầu vào có hình dạng và thiết kế tương tự cho một trang web. Tôi biết rằng tôi đã bỏ qua một phần lớn "logic kinh doanh" trong hình và tôi sẽ nhận được điều đó. Tuy nhiên, hãy đảm bảo rằng chúng tôi không sử dụng các tính năng tiện lợi của OOP như "đa hình" và "kế thừa" trong các phần này của mã của chúng tôi. Có những mẫu rất nổi tiếng, được nghiên cứu lâu dài, thực tế và không phải là hỗ trợ cho điều đó. Ít nhất là ngu ngốc khi phát minh ra các cách phân tích các tham số truy vấn mới bằng cách sử dụng "đa hình", "mẫu khách truy cập", v.v.

Truy cập dữ liệu cũng được thực hiện bởi các thư viện hiện có và các thứ xa xỉ như "kế thừa" hoặc "đa hình" không sử dụng ở đó. Bạn vẫn có thể sử dụng các lớp nhưng đó chỉ đơn giản là đóng gói. Bạn không thể kế thừa/tái sử dụng mã MySQL để viết mã T-SQL hoặc PL/SQL. Bạn cần một sự thay thế hoàn chỉnh. Ồ, có lẽ SELECT * FROM table của bạn có thể được "kế thừa" và nghĩ về các khả năng, wow.

Bây giờ những gì chúng ta còn lại? Vâng, logic kinh doanh. Chúng tôi đã đề cập rằng logic kinh doanh cũng là những vụ nổ ngắn về xử lý thông tin. Không có trạng thái kinh doanh liên tục trong chính mã PHP. Chúng tôi biết rằng hầu hết tất cả các hoạt động kinh doanh phải mất ít hơn một giây do các yêu cầu của Web. Do đó, các trạng thái bạn có thể trải qua, một lần nữa, ít hơn nhiều so với một ứng dụng đầy đủ. Bạn có các hoạt động kinh doanh nguyên tử, bị cô lập đang diễn ra cho phần lớn các trường hợp trong một ứng dụng web điển hình.for majority of cases in a typical web application.

Bây giờ chúng ta hãy quay lại thiết kế. Chúng tôi biết rằng trang của chúng tôi bao gồm các phần sau:

  • Đầu vào
  • Logic kinh doanh
    • Truy cập dữ liệu
  • Đầu ra

Chúng tôi đã có đầu vào, dữ liệu, đầu ra ra khỏi phạm vi đa hình và di truyền. Đây là hình ảnh cuối cùng của chúng tôi:

  • Xử lý đầu vào
  • Logic kinh doanh
    • Truy cập dữ liệu
  • Đầu ra

Chúng tôi đã có đầu vào, dữ liệu, đầu ra ra khỏi phạm vi đa hình và di truyền. Đây là hình ảnh cuối cùng của chúng tôi:small, aka short lived.

Xử lý đầu vàoCRUD is common. That's why Ruby on Rails and Active Record pattern is such a success and gained such a popularity because it increased productivity on one thing: CRUD.

Sản xuất đầu raa small problem space.

Mặc dù logic kinh doanh có thể là phần lớn nhất trong ứng dụng của chúng tôi, nhưng nó vẫn phải ở trong cửa sổ một giây của chúng tôi trong một ứng dụng web do đó phải nhỏ, còn gọi là ngắn ngủi.

Có một siêu máy tính có thể làm rất nhiều trong một giây nhưng chúng ta vẫn nói về đa số, các kịch bản phổ biến. Điều gì là phổ biến? Crud là phổ biến. Đó là lý do tại sao Ruby trên đường ray và mô hình kỷ lục hoạt động là một thành công như vậy và đạt được sự phổ biến như vậy bởi vì nó tăng năng suất trên một điều: Crud., (yes there was a first at the beginning in case you forgot), web app performance is important (if not critical) -remember "one second"- and in a scripting environment it's twice as important.

Mô hình hướng đối tượng dựa trên một cơ chế cấp thấp rất quan trọng để có ích và hiệu suất cùng một lúc: Continction Contin. Khả năng của một CPU đọc các con trỏ và nhảy đến địa chỉ được chỉ ra bởi nó gần như không có sự khác biệt nào so với việc nhảy đến địa chỉ trực tiếp. Bằng cách đó, chúng ta có thể có một bảng phương thức ảo được sử dụng để tra cứu để gọi chức năng chính xác và theo cách đó trình biên dịch có thể gọi phương thức "một số ()" của đối tượng mà không biết nó chính xác là loại ngựa điên.

Giấc mơ đó kết thúc trong thế giới kịch bản. Bạn không có CPU hướng dẫn thực thi CPU. Bạn có các byte được sản xuất bởi trình biên dịch PHP và điều đó được giải thích bởi trình thông dịch PHP. Không giống như CPU, trình thông dịch PHP phải đối phó với các khái niệm cấp cao hơn như trừu tượng, các lớp, loại bất kể đó là mã byte. Sự gián tiếp con trỏ đơn giản cho CPU là một tập hợp các hoạt động phức tạp cho PHP. Phân tích hoạt động, hiểu hoạt động, thực hiện một số kiểm tra tỉnh táo có thể, và cuối cùng thực hiện nó với một bộ byte khác.

Do đó, chi phí thừa kế trong một thế giới kịch bản là thứ tự cường độ chậm hơn so với trong môi trường bản địa.

Tất nhiên đó là chấp nhận được, miễn là lợi nhuận nhiều hơn tổn thất. Và nghĩ rằng việc mất hiệu suất có thể được phục hồi theo những cách khác như nâng cấp, phân cụm, nó dường như không phải là vấn đề. Điều đó chắc chắn đúng và đây là tuyên bố cuối cùng của tôi:

Đối với hầu hết các kịch bản trong phát triển ứng dụng Web, một thiết kế có thể sử dụng lại không kém và có thể đạt được nhiều hơn và có thể đạt được nhiều hơn mà không cần gọi điện/đa hình, do đó đóng gói là phổ biến nhất và có lợi nhất trong PHP, không phải là kế thừa.

Mục đích của việc sử dụng các lớp là gì?

Các lớp được sử dụng để tạo và quản lý các đối tượng mới và hỗ trợ kế thừa Một thành phần chính trong lập trình hướng đối tượng và cơ chế tái sử dụng mã.to create and manage new objects and support inheritance—a key ingredient in object-oriented programming and a mechanism of reusing code.

Mục đích của các lớp và đối tượng trong PHP là gì?

Xác định các lớp đối tượng là không có gì nếu không có đối tượng!Chúng ta có thể tạo nhiều đối tượng từ một lớp.Mỗi đối tượng có tất cả các thuộc tính và phương thức được xác định trong lớp, nhưng chúng sẽ có các giá trị thuộc tính khác nhau.Đối tượng của một lớp được tạo bằng cách sử dụng từ khóa mới.create multiple objects from a class. Each object has all the properties and methods defined in the class, but they will have different property values. Objects of a class is created using the new keyword.

Lớp học có nghĩa là gì trong PHP?

Lớp là một loại dữ liệu do lập trình viên xác định, bao gồm các phương thức cục bộ và các biến cục bộ.Lớp học là một tập hợp các đối tượng.Đối tượng có thuộc tính và hành vi.a programmer-defined data type, which includes local methods and local variables. Class is a collection of objects. Object has properties and behavior.

Tại sao nên sử dụng dữ liệu lớp tốt hơn?

Tại sao tôi nên thu thập dữ liệu lớp?Thu thập và sử dụng dữ liệu giúp chúng tôi đưa ra quyết định chính xác hơn về những gì đang xảy ra trong các lớp học, cả nơi để tôn vinh sức mạnh của giáo viên và cách hỗ trợ sự phát triển của giáo viên.helps us make more accurate decisions about what is happening in classrooms, both where to celebrate teachers' strengths and how to support teachers' growth.