Código PHP:
class padre
{
function getClassName() {}
}
class hijo extends padre { }
hijo::getClassName() //quisiera que me devuelva "hijo"
la llamada al metodo debe ser sin instanciarlo.
| |||
metodo con nombre de clase hija Código PHP: la llamada al metodo debe ser sin instanciarlo. Última edición por clasen; 18/10/2006 a las 08:46 |
| |||
Si no se instancia la clase, "get_class" no sirve. Gracias igual. get_class (PHP 4, PHP 5) get_class -- Devuelve el nombre de la clase de un objeto Descripción string get_class ( [object obj] ) Esta función devuelve el nombre de la clase de la cual el objeto obj es una instancia. |
| |||
Amigo!!! lo que pides es algo totalmente inutil ni me imagino para que quieres saber eso... pero en fin si lo que quieres es saber el nombre de la clase padre sin instanciar el hijo solo queda una solucion: Utilizar reflectionClass. Aunque lo más lógico es lo que dice GatorV espero que te sirva Amigo!!! Código PHP: También decir que tengo el tutorial sobre Zend Framework acabado pero me quitaron el Blog por no utilizarlo me tendre que abrir uno nuevo en breve lo publicaré lastima que no tenga mucho tiempo |
| ||||
Hola, en respuesta a lo que pide el Amigo!!!!, tal vez puedo sugerir el uso de métodos estaticos, o talvez el operador instanceof. En realidad no se comprende lo que quiere . Causuis, podrias facilitarnos, por favor, el tutorial de Zend, estamos en la búsqueda de un buen framework. Qué opinas de Zoop? Un saludo |
| |||
Perdon, no quise ser desagradecido ni mal educado. La idea es implementar el patron de diseño active-record (builder.com.com/5100-6386-5111856-2.html) y entre los metodos hacer un "insert" que use el nombre de la clase como nombre de la tabla. $usuario = new Usuario(); $usuario->insert(...); esto ya lo tengo, pero a veces es inutil instanciar la clase solo para insertar, entonces quisiera que el metodo sea estático, pero necesito usar el nombre de la clase y al no tener la instancia ($this), no encuentro la forma. $usuario::insert(...); Tampoco quiero pasarle el nombre de la clase por parametro. Saludos! |
| ||||
Puedes bajar e investigar como funciona Propel, usa un mecanismo basado en XML y en Creole para mantener una definicion de datos y usarlos de la manera que estas buscando. Es decir, usar un metodo estatico y obtener un resultado. |
| |||
Tranquilo clasen aqui hay mucho cachondeo, aunque nos saquemos los ojos todos sabemos que ayudandonos unos a otros acabamos aprendiendo todos. Para el patron active Record te recomiendo que pruebes Adodb Active record que ya esta hecho y si quieres puedes extenderlo para utilizarlo a tu manera. Es un consejo claro esta. Ya me diras |
| |||
Conocia Propel... me parece lo mas serio dentro de lo que hay para PHP5. Tengo pensado usarlo cuando haga algun proyecto en synfony. Que les parece synfony? Adodb active record es una buena opción... pero se me presento desarrollar uno propio bien ajustado a mis requerimientos... igualmente esta clase que estoy desarrollando usa "pear db" o "adodb" indistintamente. Tambien soy partidario de usar lo ya desarrollado y aprovechar las mentes brillantes que nos regalan sus creaciones... pero en este caso vengo (hace mucho tiempo) con un conjunto de funciones que fueron mutando hasta llegar a ser la clase en la que estoy trabajando que tambien interactua con otras clases... ademas esto me ayuda a seguir creciendo con la OOP Cuando comence quise hacer mucho de lo que ya estaba hecho... es parte del orgullo del programador... y parte de lo que te da buena practica. Pero en este caso es algo que tiene su ventaja competitiva con respecto a adodb por ejemplo... con propel no tuve casi experiencia (aun). Pero se lo ve solido. Saludos! Otra cosa Por el tema del ::insert se podría hacer un singleton pattern no? que opinan? |
| ||||
Cita: El problema es que tú dejas las cosas inconclusas, y yo no puedo tomar una nueva discusión si no he terminado con la anterior: http://www.forosdelweb.com/showpost....4&postcount=11 Bueno, cuando quieras tengo lugar en el mío |