Hola. No soy un usuario comun de PHP, tengo mucho tiempo sin trabajar en él (desde los inicios de php4), y tengo algunas dudas con el manejo de OOP en PHP5.
Estoy haciendo algo de esta forma:
Tengo una clase Basic de la que heredan muchas clases las cuales no se su nombre a priori. Quiero que esas clases tengan un metodo estatico en comun y que cuando esté en ese metodo, pueda saber que clase lo llamo. es algo asi:
Código:
<?php
class Basic {
...
public static unMetodo() {
echo "Fui llamado desde la clase " . self . "\n";
}
}
class Clase1 extends Basic { ... }
class Clase2 extends Basic { ... }
...
class ClaseN extends Basic { ... }
Clasei::unMetodo() // Aqui deberia imprimir: "Fui llamado desde la clase Clasei"
sin embargo usando unicamente la palabra self no lo logro, ni tampoco get_class(self).
Intente otras alternativas, como por ejemplo:
Código:
class Basic {
public static $class_name;
...
function __constructor() {
$this->class_name = get_class(this);
}
...
public static unMetodo() { echo "Fui llamado desde la clase " . self::$class_name ; }
}
Se que es posible que haya una forma mas facil de realizarlo, pero repito, no estoy muy familiarizado con PHP5 jeje.
Alguien tiene alguna idea?