Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Singleton Pattern trong PHP

Singleton Pattern đảm bảo một lớp chỉ có một instance duy nhất và cung cấp điểm truy cập toàn cục. Đối tượng duy nhất này có sẵn khắp ứng dụng trong trạng thái được kiểm soát.

Ví dụ

<?php
class Database {
    public static $connection;
    private function __construct() {
        echo "Kết nối đã tạo\n";
    }
    public static function connect() {
        if (!isset(self::$connection)) {
            self::$connection = new Database();
        }
        return self::$connection;
    }
}
$db1 = Database::connect(); // tạo mới
$db2 = Database::connect(); // trả về instance cũ
?>

Kết quả

Kết nối đã tạo

Giải thích

Lần gọi thứ hai Database::connect() không tạo đối tượng mới mà trả về instance đã tồn tại. Constructor private ngăn chặn khởi tạo trực tiếp bên ngoài.