Biển Hoàng - NETKO Solution
bien@netko-solution.com
Object Oriented Programing
in PHP
Principles, Examples and Practices
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
Lập trình hướng đối tượng - OOP
OOP - Object Oriented Programing.
- Là phương pháp lập trình dựa trên các đối tượng của hệ thống.
- Các đối tượng trong lập trình, là “trừu tượng hóa” của các đối tượng trong thực tế.
- Là mô hình lập trình phổ biến nhất hiện nay.
- Giúp tổ chức code dễ đọc, dễ bảo trì, nâng cấp.
- Gồm 4 đặc tính: Trừu tượng, đa hình, kế thừa, đóng gói.
2
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Đối tượng - Object
3
- Là bất cứ thứ gì.
- Một Object có
+ Định danh - Identity
+ Có thuộc tính - Attribute & trạng thái.
+ Có hành vi - Behavior (có thể làm, bị làm).
- Một Object có thể chứa Object khác.
- Objects = Noun
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Lớp - Class
4
- Class là một bản thiết kế - “blueprint” của Object
- Một Class được mô tả như sau
+ Name: Nó là gì?
+ Attribute: Nó được mô tả thế nào?
+ Behavior: Nó có thể làm gì?
- Từ 1 Class có thể tạo ra được
không giới hạn Object
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - 4 đặc tính
5
APIE
1. Abstraction
2. Polymorphism
3. Inheritance
4. Encapsulation
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Trừu tượng - Abstraction
6
● Chỉ quan tâm tới những đặc điểm tổng quát, mà không quan tâm tới cụ thể
một đối tượng.
● Bỏ qua những thứ không liên quan
● Bỏ qua những thứ không quan trọng
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Đóng gói - Encapsulation
7
● Che dấu đi đặc tính, hay hành vi của đối tượng.
● Chỉ cho phép 2 đối tượng tác động lên nhau theo cơ chế định trước.
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Kế thừa - Inheritance
8
● Cho phép một đối tượng sử dụng đặc tính, hành vi của đối tượng khác có cùng
loại mà không cần định nghĩa lại.
● Cho phép các đối tượng chia sẻ hoặc mở rộng các đặc tính, hành vi.
● Code reuse.
Ví dụ: Đối tượng “Chó Chihuahua" có những đặc tính và hành vi mà đối
tượng “Chó" có.
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Đa hình - Polymorphism
9
● Những đối tượng có hành vi giống nhau nhưng lại có cách thực hiện và kết
quả khác nhau.
Ví dụ: Chó và Mèo đều có hành vi “kêu", nhưng chó kêu “Gâu gâu" còn mèo
kêu “meo meo".
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Class trong PHP
10
class SimpleClass
{
// Property declaration
public $var = 'a default value';
// Method declaration
public function displayVar() {
echo $this->var;
}
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Thuộc tính và phương thức
11
// Property declaration
public $var = 'a default value';
// Method declaration
public function displayVar() {
echo $this->var;
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Khởi tạo Object
12
// Create new object from Class
$instance = new SimpleClass();
// Assign object to other variable
$assigned = $instance;
$reference =& $instance;
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Truy cập trong Class.
13
Sử dụng: $this
// Property declaration
public $var = 'a default value';
// Method declaration
public function displayVar() {
echo $this->var;
}
// To String
public function toString() {
return $this->displayVar()
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Kế thừa - Extends
14
class Foo
{
public function printItem($string)
{
echo 'Foo: ' . $string . PHP_EOL;
}
public function printPHP()
{
echo 'PHP is great.' . PHP_EOL;
}
}
class Bar extends Foo
{
public function printItem($string)
{
echo 'Bar: ' . $string . PHP_EOL;
}
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Abstract Class
15
Define
abstract class AbstractClass
{
abstract protected function getValue();
abstract protected function
prefixValue($prefix);
public function printOut() {
print $this->getValue() . "n";
}
}
Using
class ConcreteClass1 extends AbstractClass
{
protected function getValue() {
return "ConcreteClass1";
}
public function prefixValue($prefix) {
return "{$prefix}ConcreteClass1";
}
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Interface
16
Define
interface iTemplate
{
public function setVariable($name, $var);
public function getHtml($template);
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Thực hiện - Implement
17
class Template implements iTemplate
{
private $vars = array();
public function setVariable($name, $var)
{
$this->vars[$name] = $var;
}
public function getHtml($template)
{
foreach($this->vars as $name => $value) {
$template = str_replace('{' . $name . '}', $value, $template);
}
return $template;
}
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Access Modifier
18
● Public: Có thể truy cập được từ mọi nơi.
● Protected: Chỉ truy cập được từ chính nó Class nào kế thừa nó.
● Private: Chỉ cho phép truy cập trong nội tại Class.
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Access Modifier
19
class MyClass
{
// Declare a public method
public function MyPublic() { }
// Declare a protected method
protected function MyProtected() { }
// Declare a private method
private function MyPrivate() { }
// This is public
function Foo()
{
$this->MyPublic();
$this->MyProtected();
$this->MyPrivate();
}
}
$myclass = new MyClass();
$myclass->MyPublic(); // Works
$myclass->MyProtected(); // Fatal Error
$myclass->MyPrivate(); // Fatal Error
$myclass->Foo(); // All work
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Access Modifier
20
class MyClass2 extends MyClass
{
// This is public
function Foo2()
{
$this->MyPublic();
$this->MyProtected();
$this->MyPrivate(); // Fatal Error
}
}
$myclass2 = new MyClass2();
$myclass2->MyPublic(); // Works
$myclass2->Foo2(); // Public and Protected work, not Private
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Constructor
21
class BaseClass {
function __construct() {
print "In BaseClass
constructorn";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass
constructorn";
}
}
class OtherSubClass extends BaseClass {
// inherits BaseClass's constructor
}
// In BaseClass constructor
$obj = new BaseClass();
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();
// In BaseClass constructor
$obj = new OtherSubClass();
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Static
22
● Một thuộc tính hoặc phương thức được khai báo “static" thì có thể truy cập mà không
cần phải khởi tạo Object từ Class.
● Một thuộc tính “static" thì không thể truy cập từ Object được khởi tạo từ Class.
● Một phương thức “static" thì có thể truy cập từ Object được khởi tạo từ Class.
class Foo {
public static function aStaticMethod() {
// ...
}
}
Foo::aStaticMethod();
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Final
23
● Một phương thức được khai báo là “final" thì không cho phép các lớp con kế
thừa nó thay đổi lại nội dung phương thức.
● Một Class được khai báo là “final" thì không cho phép Class khác kế thừa.
class BaseClass {
final public function moreTesting() {
echo "BaseClass::moreTesting() calledn";
}
}
final class BaseClass {
final public function moreTesting() {
echo "BaseClass::moreTesting() calledn";
}
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - PHP Namespace
24
● Sử dụng để nhóm 1 hoặc nhiều Class vào thành 1 nhóm.
● Có tác dụng để gói các phần của chương trình vào thành 1 gói cho dễ quản lý.
● Cho phép tồn tại các Class có tên cùng nhau nhưng khác Namespace.
● Quản lý mã nguồn và chương trình dễ dàng hơn.
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - PHP Namespace
25
namespace myname;
class MyClass {
public function myfunction() {
echo “Hello World";
}
}
$a = new MyClass();
$a->myfunction(); // Hello World
$c = new mynameMyClass();
$c->myfunction() // Hello World
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Trait
26
● Là cách tái sử dụng Code trong PHP.
● Loại bỏ đi 1 số nhược điểm của việc đơn kế thừa.
● Trait chỉ bao gồm phương thức và không thể khởi tạo Object từ Trait.
trait ezcReflectionReturnInfo {
function getReturnType() { /*1*/ }
function getReturnDescription() { /*2*/ }
}
class ezcReflectionMethod extends ReflectionMethod {
use ezcReflectionReturnInfo;
}
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Magic method - Đọc thêm.
27
● Là những phương thức phản ứng lại sự kiện diễn ra trong 1 Object.
● Một số Magic Method thường dùng
__construct()
__destruct()
__call()
__callStatic()
__get()
__set()
__isset()
__unset()
_wakeup()
__toString()
__invoke()
__set_state()
__clone()
__debugInfo()
__sleep()
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Mô hình MVC
28
Bạn có thực sự hiểu đúng?
Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com
OOP - Mô hình MVC
29
Là một “Architecture Pattern” trong xây dựng hệ thống.
- Model: Chứa Logic xử lý nghiệp vụ.
- Controller: Điều hướng, tương tác với Model và View
- View: Hiển thị dữ liệu, tương tác với Client side
THE END
30

More Related Content

PDF
Lập trình hướng đối tượng trong PHP
PPTX
Chương 2: Ngôn ngữ PHP
PDF
Speaker dang minh tuan javascript for php developer
PDF
Web301 slide 3
PDF
Tài liệu lập trình PHP từ căn bản đến nâng cao
PDF
Hàm can bản
PDF
Câu hỏi trắc nghiệm PHP
PPTX
Hàm (function)
Lập trình hướng đối tượng trong PHP
Chương 2: Ngôn ngữ PHP
Speaker dang minh tuan javascript for php developer
Web301 slide 3
Tài liệu lập trình PHP từ căn bản đến nâng cao
Hàm can bản
Câu hỏi trắc nghiệm PHP
Hàm (function)

What's hot (20)

PPTX
Các kiểu dữ liệu (data type)
PPT
Php02 ngon nguphp
PPTX
Class và object (lớp và đối tượng
PDF
Chuong3 c
PPTX
Toán tử thông dụng
PPTX
Dữ liệu mảng (array)
PPTX
Các hàm thông dụng có sẵn trong php
PDF
Hướng dẫn lập trình CMS Joomla 2.5
PPT
Php Csdlweb06
PPTX
Giao trinh thiet ke web bai 4 - php
PDF
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
PDF
Bai07 da hinh
PDF
OOP Review - Ôn tập Hướng Đối Tượng
PDF
PDF
Python moi
PDF
Tai lieu huong_dan_ve_lap_trinh_php_7512
PDF
Chuong4 (2)
PPT
Lap trinh huong_doi_tuong_cpp_dhct_lesson09
PPT
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
PDF
Web course php co ban
Các kiểu dữ liệu (data type)
Php02 ngon nguphp
Class và object (lớp và đối tượng
Chuong3 c
Toán tử thông dụng
Dữ liệu mảng (array)
Các hàm thông dụng có sẵn trong php
Hướng dẫn lập trình CMS Joomla 2.5
Php Csdlweb06
Giao trinh thiet ke web bai 4 - php
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bai07 da hinh
OOP Review - Ôn tập Hướng Đối Tượng
Python moi
Tai lieu huong_dan_ve_lap_trinh_php_7512
Chuong4 (2)
Lap trinh huong_doi_tuong_cpp_dhct_lesson09
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Web course php co ban
Ad

Similar to Lập trình hướng đối tượng trong PHP (20)

PDF
Javascript for php developer
PDF
Khái niệm OOP, Các tính chất của OOP, Class & Object
DOCX
PMMNM.docx
DOCX
Lập Trình Hướng Đối Tượng (OOP) Trong Java.docx
PDF
Web301 slide 2
PDF
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
DOCX
Lappj trình hướng đối tượng
PDF
Hỏi tình hình bk tiny bktiny-hdsd
PDF
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
PDF
Giới thiệu OOP
PDF
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
PPT
Chuong 1. Lập trình hướng đối tượng trong java
PPTX
E learning lab - Tim hieu Cake PHP
PDF
OOP_01_Tong Quan LTHDT.pdf
DOCX
Đối Tượng trong Java Hiểu và Sử Dụng Hiệu Quả.docx
PDF
Triển khai nhận diện đối tượng trên thiết bị Android với YOLO.pdf
PDF
PPTX
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
PDF
Bai05 ket tapvakethua
DOCX
CÁC LOẠI THẺ KHÁC TRONG ỨNG DỤNG NÀY CÓ LÀ
Javascript for php developer
Khái niệm OOP, Các tính chất của OOP, Class & Object
PMMNM.docx
Lập Trình Hướng Đối Tượng (OOP) Trong Java.docx
Web301 slide 2
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Lappj trình hướng đối tượng
Hỏi tình hình bk tiny bktiny-hdsd
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Giới thiệu OOP
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Chuong 1. Lập trình hướng đối tượng trong java
E learning lab - Tim hieu Cake PHP
OOP_01_Tong Quan LTHDT.pdf
Đối Tượng trong Java Hiểu và Sử Dụng Hiệu Quả.docx
Triển khai nhận diện đối tượng trên thiết bị Android với YOLO.pdf
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Bai05 ket tapvakethua
CÁC LOẠI THẺ KHÁC TRONG ỨNG DỤNG NÀY CÓ LÀ
Ad

Lập trình hướng đối tượng trong PHP

  • 1. Biển Hoàng - NETKO Solution bien@netko-solution.com Object Oriented Programing in PHP Principles, Examples and Practices
  • 2. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com Lập trình hướng đối tượng - OOP OOP - Object Oriented Programing. - Là phương pháp lập trình dựa trên các đối tượng của hệ thống. - Các đối tượng trong lập trình, là “trừu tượng hóa” của các đối tượng trong thực tế. - Là mô hình lập trình phổ biến nhất hiện nay. - Giúp tổ chức code dễ đọc, dễ bảo trì, nâng cấp. - Gồm 4 đặc tính: Trừu tượng, đa hình, kế thừa, đóng gói. 2
  • 3. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Đối tượng - Object 3 - Là bất cứ thứ gì. - Một Object có + Định danh - Identity + Có thuộc tính - Attribute & trạng thái. + Có hành vi - Behavior (có thể làm, bị làm). - Một Object có thể chứa Object khác. - Objects = Noun
  • 4. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Lớp - Class 4 - Class là một bản thiết kế - “blueprint” của Object - Một Class được mô tả như sau + Name: Nó là gì? + Attribute: Nó được mô tả thế nào? + Behavior: Nó có thể làm gì? - Từ 1 Class có thể tạo ra được không giới hạn Object
  • 5. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - 4 đặc tính 5 APIE 1. Abstraction 2. Polymorphism 3. Inheritance 4. Encapsulation
  • 6. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Trừu tượng - Abstraction 6 ● Chỉ quan tâm tới những đặc điểm tổng quát, mà không quan tâm tới cụ thể một đối tượng. ● Bỏ qua những thứ không liên quan ● Bỏ qua những thứ không quan trọng
  • 7. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Đóng gói - Encapsulation 7 ● Che dấu đi đặc tính, hay hành vi của đối tượng. ● Chỉ cho phép 2 đối tượng tác động lên nhau theo cơ chế định trước.
  • 8. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Kế thừa - Inheritance 8 ● Cho phép một đối tượng sử dụng đặc tính, hành vi của đối tượng khác có cùng loại mà không cần định nghĩa lại. ● Cho phép các đối tượng chia sẻ hoặc mở rộng các đặc tính, hành vi. ● Code reuse. Ví dụ: Đối tượng “Chó Chihuahua" có những đặc tính và hành vi mà đối tượng “Chó" có.
  • 9. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Đa hình - Polymorphism 9 ● Những đối tượng có hành vi giống nhau nhưng lại có cách thực hiện và kết quả khác nhau. Ví dụ: Chó và Mèo đều có hành vi “kêu", nhưng chó kêu “Gâu gâu" còn mèo kêu “meo meo".
  • 10. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Class trong PHP 10 class SimpleClass { // Property declaration public $var = 'a default value'; // Method declaration public function displayVar() { echo $this->var; } }
  • 11. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Thuộc tính và phương thức 11 // Property declaration public $var = 'a default value'; // Method declaration public function displayVar() { echo $this->var; }
  • 12. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Khởi tạo Object 12 // Create new object from Class $instance = new SimpleClass(); // Assign object to other variable $assigned = $instance; $reference =& $instance;
  • 13. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Truy cập trong Class. 13 Sử dụng: $this // Property declaration public $var = 'a default value'; // Method declaration public function displayVar() { echo $this->var; } // To String public function toString() { return $this->displayVar() }
  • 14. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Kế thừa - Extends 14 class Foo { public function printItem($string) { echo 'Foo: ' . $string . PHP_EOL; } public function printPHP() { echo 'PHP is great.' . PHP_EOL; } } class Bar extends Foo { public function printItem($string) { echo 'Bar: ' . $string . PHP_EOL; } }
  • 15. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Abstract Class 15 Define abstract class AbstractClass { abstract protected function getValue(); abstract protected function prefixValue($prefix); public function printOut() { print $this->getValue() . "n"; } } Using class ConcreteClass1 extends AbstractClass { protected function getValue() { return "ConcreteClass1"; } public function prefixValue($prefix) { return "{$prefix}ConcreteClass1"; } }
  • 16. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Interface 16 Define interface iTemplate { public function setVariable($name, $var); public function getHtml($template); }
  • 17. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Thực hiện - Implement 17 class Template implements iTemplate { private $vars = array(); public function setVariable($name, $var) { $this->vars[$name] = $var; } public function getHtml($template) { foreach($this->vars as $name => $value) { $template = str_replace('{' . $name . '}', $value, $template); } return $template; } }
  • 18. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Access Modifier 18 ● Public: Có thể truy cập được từ mọi nơi. ● Protected: Chỉ truy cập được từ chính nó Class nào kế thừa nó. ● Private: Chỉ cho phép truy cập trong nội tại Class.
  • 19. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Access Modifier 19 class MyClass { // Declare a public method public function MyPublic() { } // Declare a protected method protected function MyProtected() { } // Declare a private method private function MyPrivate() { } // This is public function Foo() { $this->MyPublic(); $this->MyProtected(); $this->MyPrivate(); } } $myclass = new MyClass(); $myclass->MyPublic(); // Works $myclass->MyProtected(); // Fatal Error $myclass->MyPrivate(); // Fatal Error $myclass->Foo(); // All work
  • 20. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Access Modifier 20 class MyClass2 extends MyClass { // This is public function Foo2() { $this->MyPublic(); $this->MyProtected(); $this->MyPrivate(); // Fatal Error } } $myclass2 = new MyClass2(); $myclass2->MyPublic(); // Works $myclass2->Foo2(); // Public and Protected work, not Private
  • 21. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Constructor 21 class BaseClass { function __construct() { print "In BaseClass constructorn"; } } class SubClass extends BaseClass { function __construct() { parent::__construct(); print "In SubClass constructorn"; } } class OtherSubClass extends BaseClass { // inherits BaseClass's constructor } // In BaseClass constructor $obj = new BaseClass(); // In BaseClass constructor // In SubClass constructor $obj = new SubClass(); // In BaseClass constructor $obj = new OtherSubClass();
  • 22. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Static 22 ● Một thuộc tính hoặc phương thức được khai báo “static" thì có thể truy cập mà không cần phải khởi tạo Object từ Class. ● Một thuộc tính “static" thì không thể truy cập từ Object được khởi tạo từ Class. ● Một phương thức “static" thì có thể truy cập từ Object được khởi tạo từ Class. class Foo { public static function aStaticMethod() { // ... } } Foo::aStaticMethod();
  • 23. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Final 23 ● Một phương thức được khai báo là “final" thì không cho phép các lớp con kế thừa nó thay đổi lại nội dung phương thức. ● Một Class được khai báo là “final" thì không cho phép Class khác kế thừa. class BaseClass { final public function moreTesting() { echo "BaseClass::moreTesting() calledn"; } } final class BaseClass { final public function moreTesting() { echo "BaseClass::moreTesting() calledn"; } }
  • 24. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - PHP Namespace 24 ● Sử dụng để nhóm 1 hoặc nhiều Class vào thành 1 nhóm. ● Có tác dụng để gói các phần của chương trình vào thành 1 gói cho dễ quản lý. ● Cho phép tồn tại các Class có tên cùng nhau nhưng khác Namespace. ● Quản lý mã nguồn và chương trình dễ dàng hơn.
  • 25. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - PHP Namespace 25 namespace myname; class MyClass { public function myfunction() { echo “Hello World"; } } $a = new MyClass(); $a->myfunction(); // Hello World $c = new mynameMyClass(); $c->myfunction() // Hello World
  • 26. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Trait 26 ● Là cách tái sử dụng Code trong PHP. ● Loại bỏ đi 1 số nhược điểm của việc đơn kế thừa. ● Trait chỉ bao gồm phương thức và không thể khởi tạo Object từ Trait. trait ezcReflectionReturnInfo { function getReturnType() { /*1*/ } function getReturnDescription() { /*2*/ } } class ezcReflectionMethod extends ReflectionMethod { use ezcReflectionReturnInfo; }
  • 27. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Magic method - Đọc thêm. 27 ● Là những phương thức phản ứng lại sự kiện diễn ra trong 1 Object. ● Một số Magic Method thường dùng __construct() __destruct() __call() __callStatic() __get() __set() __isset() __unset() _wakeup() __toString() __invoke() __set_state() __clone() __debugInfo() __sleep()
  • 28. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Mô hình MVC 28 Bạn có thực sự hiểu đúng?
  • 29. Object Oriented Programing in PHP - Biển Hoàng - bien@netoko-solution.com OOP - Mô hình MVC 29 Là một “Architecture Pattern” trong xây dựng hệ thống. - Model: Chứa Logic xử lý nghiệp vụ. - Controller: Điều hướng, tương tác với Model và View - View: Hiển thị dữ liệu, tương tác với Client side