PHP OOP: Singleton (Jedináček) [9]

PHP OOP: Singleton (Jedináček) [9]

Singleton je další návrhový vzor, který znamená, že daná třída má pouze jednu (globální) instanci a jen s tou se v aplikaci dále pracuje. Mezi typické použití patří vytvoření připojení do databáze.

 

Singleton příklad - databáze

https://github.com/hydroxid/php_examples/blob/main/3666_singleton/singleton_db.php

class Database
{
    private static $db;

    // disable direct call
    private function __clone() { }

    // disable direct call
    private function __construct()
    {
        echo 'Only one instance of Database is created' . PHP_EOL;
    }

    public static function connect()
    {
        if (!isset(self::$db)) {
            self::$db = new Database();
        }
        return self::$db;
    }
}

$db1 = Database::connect();
$db2 = Database::connect();
$db3 = Database::connect();

Vrátí:

Only one instance of Database is created


Singleton příklad - více tříd

https://github.com/hydroxid/php_examples/blob/main/3666_singleton/singleton.php

class Singleton
{
    private static Singleton $instance;

    public Entity $entity;

    // disable direct call
    private function __clone() { }

    // disable direct call
    private function __construct()
    {
        echo 'Only one instance of Singleton is created' . PHP_EOL;
        $entity = new Entity('name');
    }

    public static function getInstance() : Singleton
    {
        if (!isset(self::$instance)) {

            self::$instance = new Singleton();
        }
        return self::$instance;
    }
}

class Entity
{
    public $name;

    public function __construct(string $name)
    {
        $this->name = $name;
        echo $this->name . PHP_EOL;
    }
}

$singleton1 = Singleton::getInstance();
$singleton2 = Singleton::getInstance();
$singleton3 = Singleton::getInstance();

Vrátí:

Only one instance of Singleton is created
name

Související obsah

serial-php-oop

php

programovani

vyvoj

php-oop

Komentáře

Vaše reakce na PHP OOP: Singleton (Jedináček) [9]

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.