Cairo Noleto

Singleton pattern em PHP

| Comments

UPDATE: Alteração no código do Singleton

O Pattern Singleton é um design usado para restringir a criação de objetos e apenas utilizar uma quantidade exata de cada instancia.

Para que eu vou usar isso afinal? Diminuição no uso de memória, uso de apenas algumas conexões com um banco de dados, apenas um único objeto para toda a aplicação entre outros.

O framework CodeIgniter utiliza esse pattern para a criação de objetos, o Lumine utiliza essa pattern, eu utilizo esse pattern :P.

Exemplo de como fazer isso em PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Singleton {
  private static $instance;
  private function Singleton() {
    // Your code here…
  }

  public static function getInstance() {
    if (!self::$instance instanceof self) {
      self::$instance = new self;
    }

    return self::$instance;
  }
}

UPDATE: Por que usar construtor privado? Se o construtor não for privado, você poderá fazer várias instancias assim quebrando o Singleton Pattern. Você não deve iniciar diretamente o objeto, deve fazer isso chamando o método estático getInstance().

Imagine agora as possibilidades ;)

Até a próxima!

Comments