Hướng đối tượng trong PHP là gì ? Tại sao lại sử dụng hướng đối tượng ? Cách sử dụng hướng đối tượng trong PHP như thế nào ? Đươc biết có rất nhiều bạn khi học lập trình PHP thường hay bỡ ngỡ về vấn đề này, nên trong  bài viết hôm nay mình sẽ tổng hợp tất cả vấn đề lien quan về hướng đối tượng trong PHP để giúp các bạn hiểu rõ hơn.

Hướng đối tượng là gì ?

Hướng đối tượng (OOP : Object-oriented programming), là môt mô hình lập trình phân tách nội dụng của chương trình theo hướng cổ điển (thủ tục) và nhóm các thuộc tính, phương thức (properties, methods) giống nhau thành một đối tượng (class), giúp rút ngắn , tránh việc dư thừa, và giữ vững được nguyên lý DRY – DONT REPEAT YOURSELF (nghĩa là không viết những đoạn code lặp lại), dễ dàng trong vấn đề báo trì, tăng hiệu quả công việc.

Hãy thử hình dung bạn xây dựng 1 website hoặc một hệ thống lên cả nghìn, thậm chí hàng triệu dòng code, các mã lệnh đươc viết theo hướng cổ điển, một trang web (page) chứa nào là html, php,js, xử lý xen lẫn, trà trộn với nhau. Và thế là mỗi lần xuất hiện lỗi, gặp phải một vấn đề  nào đó hay chỉ đơn thuần là sửa vài chỗ nhỏ khi có thay đổi yêu cầu thì bạn phải lục tung cả mớ code, đi sửa từng chỗ này chỗ kia vì các đoạn code trùng lặp, điều này quả thật là một cơn ác mộng đối với một lập trình viên. Chính vì thế OOP ra đời nhằm giúp bạn giải quyết vấn đề này.

Bạn có thể tìm hiểu rõ hơn về cách khai báo, truy xuất đối tượng, thuộc tính phương thức của hướng đối tượng trong PHP tại đây

2. Những điều cần phải nắm về hướng đối tượng trong PHP

Ở phần 1 đã giải thích về hướng đối tượng là gì, thì hướng đối tượng trong PHP cũng vậy. Hướng đối tượng trong PHP bao gồm

Các phương thức magic

Nhằm giúp sử dụng hiệu quả các object trong hướng đối tượng, PHP cung cấp cho lập trình viên phương thức magic.Phương thức magic là những phương thức được đặt tên với kí tự đặc biệt, bắt đầu với dấu 2 gạch dưới. Khi một phương thức được đặt tên với dấu 2 gạch dưới, điều đó là dấu hiệu để PHP nhận biết đây là phương thức magic, và nó sẽ kích hoạt các tính năng đặc biệt của loại phương thức này. Nghe thì có vẻ cao siêu, nhưng bản chất thì nó khá đơn giản, nó chỉ đơn thuần là những hàm được xây dựng sẵn, nhằm mục đích thực hiện một tác vụ nào đó hữu ích cho lập trình

Xem chi tiết tại đây

Tầm vưc của thuộc tính và phương thức

Mục đích của tầm vực chính là gia tăng khả năng kiểm soát các đối tượng, các phương thức và thuộc tính sẽ được gán thêm những giá trị tầm vực.
Cho phép chúng ta kiểm soát khả năng truy cập (như thế nào và ở nơi đâu) của thuộc tính và phương thức.
Có 3 loại tầm vực của thuộc tính và phương thức đó là :public, protected và private. Ngoài ra, static cũng là một loại tầm vực của biến, cho phép chúng ta truy cập vào thuộc tính hoặc phương thức mà không cần khởi tạo class.

Xem chi tiết tại đây

Lớp giao diện và lớp trừu tượng

Lớp trừu tượng (abtract) là gì? Lớp trừu tượng trước tiên nó chính là 1 lớp (điều này thì hiển nhiên rồi ? ), nhưng nó được gọi là lớp trừu tượng bởi vì :

– Lớp này sẽ chứa các phương thức trừa tượng.
– Các lớp khác khi kế thừa lớp trừu tượng sẽ phải định nghĩa các phương thức trừu tượng ấy.
– Một class chỉ có thể kế thừa 1 lớp trừu tượng.

Xem chi tiết tại đây

Tính kế thừa trong lập trình hướng đối tượng trong PHP

Một ví dụ đơn giản về tính kế thừa đó là trong gia đình, bạn được sinh ra chính là sự kế thừa các gen duy truyền của ba mẹ bạn chẳng hạn như màu tóc, màu mắt, chiều cao, nhóm máu,…Trong lập trình hướng đối tượng cũng thế, giả sử bạn có 1 class cha có các thuộc tính và phương thức nào đó, thì các class khác khi kế thừa class cha này (class con), thì nó sẽ thừa hưởng và tái sử dụng các phương thức, thuộc tính của class cha

Xem chi tiết tại đây

Thực hành

Vì mình không có quá nhiều thời gian để làm Video hướng dẫn các bạn rõ ràng và tường tận hơn về từng bước thực hành làm việc với hướng đối tượng trong PHP, nên mình sẽ giới thiệu đến các bạn loạt bài gồm 36 video về Hướng đối tượng từ cơ bản đến nâng cao trong PHP của anh Lưu Trường Hải Lân _ Quản lý đào tạo tại ZendVN. Anh thì quá nổi tiếng rồi nên mình cũng không cần giới thiệu nhiều. Vì đây là loạt bài Video anh bỏ thời gian ra để đầu tư, hướng dẫn chi tiết đến các bạn, nên nếu bạn muốn hiểu rõ hơn về hướng đối tượng hãy Xem tại đây .

Chúc các bạn học tốt !

 


Nếu bạn thấy bài viết có ích và muốn cảm ơn mình thì bạn có thể donate mời mình 1 lý cà phê nhé
Địa chỉ ví BTC của mình : 1NWVkBYnd5iSZ5BsAg4fbr4bYWC7hn9Vcz
Địa chỉ ví ETH của mình : 0xa4881fe9ed28b270a7a7F6D339fe0B73c35DBAd1
Cám ơn và chúc bạn nhiều niềm vui trong cuộc sống !