Patrón Singleton en PHP

Les dejo un ejemplo del patrón singleton aplicado en php. Es bien útil para manejar las conexiones a la base de datos.
<span style="color: #000000;"><span style="color: #000099;">&lt;?php  <span style="color: #ff0000;"><span style="color: #0000bb;">
2.    </span><span style="color: #007700;">class </span><span style="color: #0000bb;">DB </span><span style="color: #007700;">{
</span><span style="color: #0000bb;">3.      </span><span style="color: #007700;">private static </span><span style="color: #0000bb;">$_singleton</span><span style="color: #007700;">;</span><span style="color: #0000bb;">
4.      </span><span style="color: #007700;">private </span><span style="color: #0000bb;">$_connection</span><span style="color: #007700;">;
</span><span style="color: #0000bb;">5.      </span><span style="color: #007700;">private function </span><span style="color: #0000bb;">__construct</span><span style="color: #007700;">()</span><span style="color: #0000bb;">
6.      </span><span style="color: #007700;">{
</span><span style="color: #0000bb;">7.        $this</span><span style="color: #007700;">-&gt;</span><span style="color: #0000bb;">_connection </span><span style="color: #007700;">= </span><span style="color: #0000bb;">mysql_connect</span><span style="color: #007700;">();</span><span style="color: #0000bb;">
8.      </span><span style="color: #007700;">}
</span><span style="color: #0000bb;">9.      </span><span style="color: #007700;">public static function </span><span style="color: #0000bb;">getInstance</span><span style="color: #007700;">()
</span><span style="color: #0000bb;">10.      </span><span style="color: #007700;">{
</span><span style="color: #0000bb;">11.        </span><span style="color: #007700;">if (</span><span style="color: #0000bb;">is_null </span><span style="color: #007700;">(</span><span style="color: #0000bb;">self</span><span style="color: #007700;">::</span><span style="color: #0000bb;">$_singleton</span><span style="color: #007700;">)) {
</span><span style="color: #0000bb;">12.          self</span><span style="color: #007700;">::</span><span style="color: #0000bb;">$_singleton </span><span style="color: #007700;">= new </span><span style="color: #0000bb;">DB</span><span style="color: #007700;">();</span><span style="color: #0000bb;">
13.        </span><span style="color: #007700;">}</span><span style="color: #0000bb;">
14.        </span><span style="color: #007700;">return </span><span style="color: #0000bb;">self</span><span style="color: #007700;">::</span><span style="color: #0000bb;">$_singleton</span><span style="color: #007700;">;
</span><span style="color: #0000bb;">15.      </span><span style="color: #007700;">}
</span><span style="color: #0000bb;">16.    </span><span style="color: #007700;">}
</span><span style="color: #0000bb;">17.    $db </span><span style="color: #007700;">= </span><span style="color: #0000bb;">DB</span><span style="color: #007700;">::</span><span style="color: #0000bb;">getInstance</span><span style="color: #007700;">();</span><span style="color: #0000bb;">
18.
19.    ?&gt;</span></span></span></span>
Saludos ...
Sin votos aún

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

CAPTCHA
Esta pregunta es para probar si tu eres un humano y para prevenir spam en el sitio.
4 + 5 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.