| |||
| POO y base de datos Estoy haciendo una classe sencilla para empezar a programar orientado a objetos, y se me ha planteado una duda: Cómo hacer una funcion insertar_generica recoja las propiedades del objeto para hacer el insert? Código PHP: El problema que tengo es en $pop_objeto en que tendria las propiedades del objeto. |
| |||
| Hola, Mas bien no. Si estas usando herencia, lo normal es que llames a la funcion del padre directamente, con el $this->funcion generica. Quizas te interesa leer http://www.phppatterns.com/index.php...leview/25/1/1/ (o en general www.phppatterns.com). Saludos.
__________________ Josemi Aprendiz de mucho, maestro de poco. |
| |||
| Lo veo bien, es enfocandolo de otra manera. Bueno te haré unas cuantas consultas pq no estoy familiarizado con POO. 1. Pq se tiene que usar &? yo no lo pongo. 2. Estas insetando un zapato en la tabla estanteria. No seria mejor: $con -> insert ( $zapato -> getTabla()); Así no tendrias que saber el nombre de la tabla. 3. Cómo se hace el insert este con 5 objetos diferentes mas. ( tendras que hacer 5 switch, no?). 4. Cómo extraer las propiedades de $zapato en el objeto $con, para hacer el insert? En cuanto a mi ejemplo de código, cómo extraer las propiedades del objeto en la classe generica? Un saludo |
| ||||
| 1. el uso de & es para crear referencias a objetos, si no lo usas cada vez que realices una asignación harás una copia de todo el objeto. Es interesante, que SIEMPRE la uses. Código PHP: Código PHP: 4. (aplicable a tu clase en genérica?) en serio que me estás preguntando eso?? Extraer las propiedades mediante métodos "getNombreAtributo". (Aunque puedes acceder al atributo directamente, pero yo eso lo puse en un examen en primero de carrera y me tragué un sermón del profe porque mi respuesta violaba el principio de la encapsulación/ocultación de datos, razón que tenía!!) Código PHP: Me podría extender más, pero casi que te lees el patrón DAO (Data Abstraction Object) de los links que te dio josemi. un saludete, ya cuentas algo nuevo por aqui. |
| ||||
| qué propiedades?! tu clase genérica no tiene atributos de clase!!! En cuanto a la implementación del insert: http://es2.php.net/manual/en/functio...bject-vars.php http://es2.php.net/manual/en/functio...ss-methods.php http://www.php.is/is_subclass_of (te vendría bien si todos los objetos de la base de datos extienden de una interfaz en común, o clase abstracta). |
| |||
| Entonces este seria el resultado class generica{ function insetar_generica($table,$object); $prop_object = get_object_vars ($object); $values = implode (',',$prop_object); $sql = "INSERT INTO $table VALUES $values"; return mysql_query($sql); } Es que no sabia cómo coger los atributos del objeto piso si la funcion que uso para hacer el insert es de la classe generica. Ahora lo veo, que usando get_object_vars, ya tengo acceso a los atributos del objeto que es accesible desde otra classe. Esto viola el encapsulamiento? Muchas gracias por tus mensajes, me han sido de mucha ayuda. En serio, gracias.. estoy aprendiendo. |
| ||||
| Pues no sé si termina de violar el "principio de las narices". El "error" está cuando haces esto: Código PHP: Código PHP: un saludete. |