- PHP - Mở đầu
- PHP - Giới thiệu
- PHP - Cài đặt môi trường
- PHP - Cú pháp
- PHP - Các kiểu biến
- PHP - Hằng (Constant)
- PHP - Toán tử
- PHP - Điều khiển luồng
- PHP - Vòng lặp
- PHP - Chuỗi (String)
- PHP - Các khái niệm Web
- PHP - GET & POST
- PHP - File Inclusion
- PHP - File & I/O
- PHP - Hàm
- PHP - Cookie
- PHP - Session
- PHP - Gửi Email
- PHP - Upload File
- PHP - Chuẩn viết Code
- PHP - Biến được định nghĩa trước
- PHP - Regular Expression
- PHP - Xử lý lỗi
- PHP - Bug & Debug
- PHP - Date & Time
- PHP & MySQL
- PHP & AJAX
- PHP & XML
- PHP - Hướng đối tượng
- PHP cho lập trình viên C
- PHP cho lập trình viên PERL
- PHP - Giới thiệu Form
- PHP - Ví dụ Validation
- PHP - Complete Form
- PHP - Ví dụ về đăng nhập
- PHP - Đăng nhập Facebook
- PHP - Tích hợp Paypal
- PHP - Đăng nhập MySQL
- PHP - AJAX Search
- PHP - AJAX XML Parser
- PHP - AJAX Auto Complete Search
- PHP - Ví dụ AJAX RSS Feed
- PHP - Giới thiệu XML
- PHP - Simple XML
- PHP - Simple XML GET
- PHP - Ví dụ SAX Parser
- PHP - Ví dụ DOM Parser
- PHP - Frame Work
- PHP - Core PHP vs Frame Work
- PHP - Design Pattern
- PHP - Tổng hợp hàm
- Hơn 100 bài tập PHP cơ bản và nâng cao
- Học Java cơ bản và nâng cao
- Học C++ cơ bản và nâng cao
Design Pattern trong PHP
Nguyên lý Design Pattern của Microsoft là: "Tài liệu giới thiệu các Pattern và sau đó trình bày chúng trong Repository hoặc Catalogue, mà được tổ chức để giúp bạn xác định vị trí kết nối chính xác của các Pattern mà giải quyết vấn đề của bạn."
Ví dụ về Design Pattern trong PHP
Singleton Pattern trong PHP
Một Class có một instance (sự thể hiện). Nó cung cấp truy cập global trỏ tới nó. Ví dụ sau sẽ giải thích về khái niệm singleton trong PHP.
<?php class Singleton { public static function getInstance() { static $instance = null; if (null === $instance) { $instance = new static(); } return $instance; } protected function __construct() { } private function __clone() { } private function __wakeup() { } } class SingletonChild extends Singleton { } $obj = Singleton::getInstance(); var_dump($obj === Singleton::getInstance()); $anotherObj = SingletonChild::getInstance(); var_dump($anotherObj === Singleton::getInstance()); var_dump($anotherObj === SingletonChild::getInstance()); ?>
Ví dụ trên được triển khai dựa trên việc tạo phương thức tĩnh là getInstance().
Factory Pattern trong PHP
Một Class tạo đối tượng và bạn muốn sử dụng đối tượng đó. Ví dụ sau giải thích về Factory trong PHP.
<?php class Automobile { private $bikeMake; private $bikeModel; public function __construct($make, $model) { $this->bikeMake = $make; $this->bikeModel = $model; } public function getMakeAndModel() { return $this->bikeMake . ' ' . $this->bikeModel; } } class AutomobileFactory { public static function create($make, $model) { return new Automobile($make, $model); } } $pulsar = AutomobileFactory::create('ktm', 'Pulsar'); print_r($pulsar->getMakeAndModel()); class Automobile { private $bikeMake; private $bikeModel; public function __construct($make, $model) { $this->bikeMake = $make; $this->bikeModel = $model; } public function getMakeAndModel() { return $this->bikeMake . ' ' . $this->bikeModel; } } class AutomobileFactory { public static function create($make, $model) { return new Automobile($make, $model); } } t$pulsar = AutomobileFactory::create('ktm', 'pulsar'); print_r($pulsar->getMakeAndModel()); ?>
Khó khăn chính với Factory Pattern là nó sẽ tăng tính phức tạp và nó không đáng tin cậy cho các lập trình viên giỏi.
Strategy pattern trong PHP
Strategy Pattern tạo một Family Algorithm và bao đóng mỗi giải thuật. Ở đây, mỗi giải thuật nên là có thể trao đổi bên trong Family đó.
<?php $elements = array( array( 'id' => 2, 'date' => '2011-01-01', ), array( 'id' => 1, 'date' => '2011-02-01' ) ); $collection = new ObjectCollection($elements); $collection->setComparator(new IdComparator()); $collection->sort(); echo "Sắp xếp theo ID:\n"; print_r($collection->elements); $collection->setComparator(new DateComparator()); $collection->sort(); echo "Sắp xếp theo ngày tháng:\n"; print_r($collection->elements); ?>
Mô hình MVC trong PHP
MVC là viết tắt của Model View Control. Trong đó, View hoạt động như GUI, Model hoạt động như Back End và Control hoạt động như một Adapter. Ở đây, 3 phần được liên kết với nhau. Nó sẽ truyền data và truy cập data giữa chúng với nhau.
Các bài học PHP phổ biến khác tại AZCode: