Ví dụ về Singleton Pattern trong PHP

Hướng dẫn về Singleton Pattern trong PHP, bao gồm ví dụ cụ thể giúp bạn hiểu cách sử dụng mẫu thiết kế này trong lập trình hướng đối tượng.

Singleton pattern đảm bảo rằng chỉ có một instance duy nhất của class được khởi tạo trong suốt thời gian chạy chương trình. Đây là một pattern quan trọng để quản lý tài nguyên chung như kết nối cơ sở dữ liệu.

<?php
// Singleton Pattern trong PHP

class Singleton {
    // Thuộc tính lưu trữ instance duy nhất của class
    private static $instance = null;

    // Constructor private để ngăn việc tạo instance từ bên ngoài class
    private function __construct() {
        echo "Instance được tạo.\n";
    }

    // Ngăn việc clone instance
    private function __clone() {}

    // Ngăn việc unserialize instance
    private function __wakeup() {}

    // Phương thức để lấy instance duy nhất của class
    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new Singleton();
        }
        return self::$instance;
    }

    // Một phương thức đơn giản để minh họa
    public function doSomething() {
        echo "Thực hiện một hành động từ instance Singleton.\n";
    }
}

// Lấy instance của Singleton
$singleton1 = Singleton::getInstance();
$singleton1->doSomething();

// Cố gắng lấy instance khác
$singleton2 = Singleton::getInstance();
$singleton2->doSomething();

// Kiểm tra xem cả hai instance có phải là cùng một đối tượng không
var_dump($singleton1 === $singleton2);  // Kết quả: true
?>

Giải thích chi tiết:

  1. private static $instance = null;: Thuộc tính này lưu trữ instance duy nhất của class Singleton. Ban đầu, nó được thiết lập là null.

  2. private function __construct();: Constructor được đặt là private để ngăn việc tạo instance mới từ bên ngoài class.

  3. private function __clone();private function __wakeup();: Ngăn việc clone hoặc unserialize đối tượng để tránh tạo ra nhiều instance.

  4. public static function getInstance();: Đây là phương thức quan trọng của Singleton pattern. Nó kiểm tra xem instance đã được tạo chưa. Nếu chưa, nó sẽ tạo instance và lưu trữ trong thuộc tính $instance. Nếu đã có, nó trả về instance hiện có.

  5. doSomething();: Một phương thức minh họa hành động nào đó mà instance của Singleton có thể thực hiện.

  6. $singleton1 === $singleton2;: Kiểm tra xem cả hai instance có phải là cùng một đối tượng không. Kết quả là true, chứng minh rằng chỉ có một instance được tạo ra.

Phiên bản PHP:

Mã này tương thích với PHP 5.0 trở lên.



Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Hướng dẫn upload nhiều hình ảnh trong PHP

Hướng dẫn chi tiết cách upload nhiều hình ảnh cùng lúc trong PHP, bao gồm xử lý file tải lên, kiểm tra định dạng và lưu trữ trên server.
Cách ghi nội dung vào file Excel bằng PHP

Hướng dẫn chi tiết cách ghi nội dung vào file Excel bằng PHP bằng cách sử dụng thư viện PHPExcel hoặc thư viện mới hơn là PhpSpreadsheet.
Chuyển đổi chữ cái Unicode có dấu thành không dấu trong PHP

Hướng dẫn cách sử dụng PHP để chuyển đổi các chữ cái Unicode có dấu trong bảng chữ cái tiếng Việt thành các chữ cái không dấu. Mã PHP này giúp xử lý văn bản tiếng Việt dễ dàng và hiệu quả.
Cập nhật dữ liệu trong MySQL bằng PHP

Hướng dẫn cách cập nhật dữ liệu trong MySQL bằng PHP. Đoạn mã này sẽ sử dụng câu lệnh SQL UPDATE để thay đổi thông tin trong cơ sở dữ liệu MySQL một cách dễ dàng.
Cập nhật dữ liệu trong MySQL bằng PHP sử dụng Prepared Statements để tránh SQL Injection

Hướng dẫn cách sử dụng Prepared Statements trong PHP để cập nhật dữ liệu trong MySQL một cách an toàn và hiệu quả. Mã PHP này giúp tránh các lỗ hổng SQL Injection khi thao tác với cơ sở dữ liệu.
Cách loại bỏ dấu câu từ chuỗi trong PHP

Hướng dẫn cách loại bỏ dấu câu từ một chuỗi trong PHP. Bài viết này giải thích cách sử dụng hàm `preg_replace` để xóa bỏ các ký tự dấu câu khỏi chuỗi.
Tổng hợp tất cả các cách nối chuỗi trong PHP

Hướng dẫn chi tiết về tất cả các cách nối chuỗi trong PHP, bao gồm sử dụng toán tử nối chuỗi, hàm nối chuỗi, và các phương pháp khác.
Cách gọi hàm PHP từ chuỗi được lưu trong biến

Hướng dẫn cách gọi một hàm PHP từ một chuỗi được lưu trong biến bằng cách sử dụng tính năng gọi hàm động trong PHP. Bài viết sẽ giới thiệu cách thực hiện với các ví dụ minh họa.
Cách chuyển chuỗi Markdown sang HTML bằng PHP

Hướng dẫn cách chuyển đổi chuỗi Markdown sang HTML trong PHP bằng cách sử dụng thư viện `Parsedown`, giúp bạn hiển thị nội dung Markdown một cách hiệu quả trên trang web của mình.
Phòng chống XSS (Cross-site Scripting) bằng PHP

Hướng dẫn cách phòng chống XSS (Cross-site Scripting) trong PHP bằng cách lọc và thoát các đầu vào người dùng, nhằm bảo mật trang web trước các lỗ hổng XSS.

Đã thêm vào giỏ hàng