que tienen una clase con una función de fábrica de patrón en ella:crear instancias de clases hijas de la clase padre (PHP)
abstract class ParentObj {
public function __construct(){ ... }
public static function factory(){
//returns new instance
}
}
que necesitan los niños para ser capaz de llamar a la función fábrica y devolver una instancia de la vocación clase: $child = Child::factory();
y preferiblemente sin anular la función de fábrica en la clase secundaria.
He intentado varias formas diferentes de lograr esto en vano. Preferiría mantenerme alejado de las soluciones que usan la reflexión, como __CLASS__
.
(estoy usando PHP 5.2.5 si importa)
estoy jugando con RC4 en el minuto así que voy a tratar algo de código en breve si nadie más pasos en el ínterin ... –
LSB parece ser la mejor solución que puedo encontrar por mi cuenta. Hasta que actualice, lo mejor que se me ocurre es pasar el nombre del niño a fábrica() o definir el nombre como propiedad y tomarlo de fábrica() –
Según el manual de PHP, hay una función llamada ' get_called_class() 'que funciona como' __CLASS__' http://us.php.net/manual/en/function.get-called-class.php –