Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/12/2009, 00:50
Avatar de jam1138
jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 5 meses
Puntos: 102
Respuesta: constructor clase

Sí, puedes. De lo que trata el patrón singleton es de tener una sola instancia de un objeto; sí, se debe impedir la instancia directa, pero no significa que no pueda ser inicializado, después de todo, es un objeto.

Para no variar, remitirse a la documentación oficial, donde trae un buen ejemplo del patrón, con el comportamiento del constructor:

www.php.net/language.oop5.patterns

Un ejemplo simple, por si hiciere falta:
Código PHP:
Ver original
  1. class Foo
  2. {
  3.     private static $instance;
  4.     public $param;
  5.  
  6.     private function __construct($param)
  7.     {
  8.         $this->param = $param;
  9.     }
  10.  
  11.     public function singleton($param = null)
  12.     {
  13.         if (self::$instance === null) {
  14.             self::$instance = new self($param);
  15.         }
  16.  
  17.         return self::$instance;
  18.     }
  19. }
  20.  
  21. $foo = Foo::singleton('bar');
  22. var_dump($foo);

Debería funcionar sin problema ... pero si es recomendable, es otro tema.

Viendo como quieres utilizar tu clase cuando aplicas el patrón, se parece mucho a la definición de tu método público de tu clase; de hecho, en su propia definición no tienes constructor... no entiendo entonces el propósito, pero perfectamente puedes llamar el método una vez recuperado/instanciado tu objeto.

Código PHP:
Ver original
  1. $foo = Foo::singleton();
  2. $foo->bar($params);

... o no entendí.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"