• Domingo 17 de Noviembre de 2024, 23:01

Autor Tema:  Mi Clase Dbhandler  (Leído 1656 veces)

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Mi Clase Dbhandler
« en: Domingo 29 de Enero de 2006, 12:05 »
0
Me estoy metiendo con objetos en php, y solo queria que vieran una clase que estoy haciendo, yo se que no es mucho, pero tampoco esta completa, les dejo un ejemplo con todo y codigo para que la chequen (nota: no esta optimizada  :rolleyes: )

dbhandler.class.php
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

hdr

  • Miembro MUY activo
  • ***
  • Mensajes: 128
    • Ver Perfil
Re: Mi Clase Dbhandler
« Respuesta #1 en: Domingo 29 de Enero de 2006, 17:18 »
0
me podrias explicar que hace esta linea

$ShowFields=array(0 => $ShowFields);

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Mi Clase Dbhandler
« Respuesta #2 en: Domingo 29 de Enero de 2006, 18:37 »
0
Para empezar dejame decirte que no soy un experto en php, asi que lo que se me ocurrio fue que el campo $ShowFields podia contener un arreglo de cadenas (varios campos para mostrar) o una sola cadena, para que pudieras poner
Código: Text
  1.  
  2. MakeTableList("tabla", "campo", 100, 0);
  3.  
  4.  
o
Código: Text
  1.  
  2. MakeTableList("tabla", $campoS, 100, 0);
  3.  
  4.  

Entonces, para poder tratar a $ShowFields como arreglo, cuando pusieran un solo campo ("nombre" por ejemplo), veo si es arrego con "is_array();", si no lo es, lo hago arreglo con:
Código: Text
  1.  
  2. $ShowFields=array(0 => $ShowFields);
  3.  
  4.  

Metiendo como unico dato del arreglo, lo que contenga $ShowFields.
Si tienes alguna sugerencia es bien recibida  :P
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

gnfrs

  • Miembro MUY activo
  • ***
  • Mensajes: 195
    • Ver Perfil
    • http://www.laguns.com.ar/
Re: Mi Clase Dbhandler
« Respuesta #3 en: Lunes 30 de Enero de 2006, 18:42 »
0
ibito,

Desde mi punto de vista vas muy bien, pero algo apresurado porque:

Cuando trabajás con objetos tenés que proponerte metas, la primera debería ser lograr una buena abstracción de datos (vos hiciste todo en una clase), es decir, hacer una clase que sólo ejecute consultas sql por ejemplo:

Después sí hacés una clase que herede de la anterior y tenga métodos que te permitan visualizar datos en forma de tablas.

Esto lo pienso así porque de esta manera vas a poder reutilizar más eficientemente tu código, ese objeto no te va a servir si la tabla tiene un formato CSS medio raro, o hay imágenes en cada campo o links para ir a la modificación de datos...

Yo te recomendaría que primero te centralices en hacer una clase con las siguientes características:

1 - Método para conectarse al servidor MySql.
2 - Método para abrir una base de datos.
3 - Método para ejecutar una consulta de qualquier tipo.
4 - Método para obtener la cantidad total de registros afectados en la última consulta. (affected rows, sirve para los INSERT, UPDATE, DELETE)
5 - Método para obtener la cantidad de registros devueltos en la última consulta (count, sirve para los SELECT)
6 - Método que devuelva una fila de la última consulta SELECT.
7 - Método que devuelva un array con TODOS los registros de la última consulta SELECT.

Creo que para empezar con eso tenés bastante.
Orientate siempre a la reutilización de software, es decir, no escribas dos veces el mismo código, si lo necesitás dos veces hacés una función y la llamás de donde la necesites utilizar. No agregues demasiadas funciones de utilidad, estamos hablando de un objeto de la 3ra capa (base de datos) por lo tanto este objeto sólo debería manipular la base de datos. Después vas a necesitar un objeto que muestre una tabla HTML a partir de una tabla MySql ahí vas a reutilizar este objeto tantas veces como lo necesites.

Administrá las versiones y anotá cada vez que modifiques algo, nunca cambies la sintaxis de métodos o propiedades públicos, nadie quiere que una nueva versión  de un objeto deje sin funcionar al sistema completo (esto en Microsoft se conoce como el Infierno de las DLL o DLL Hell ).

Ahh y casi me olvido: acostumbrate a utilizar los nombres de los campos en las consultas INSERT o UPDATE, porque una modificación en la estructura de datos puede ser catastrófica en un sitio con bastante código.

Saludos.
Gabriel S. Luraschi

·· Videos de Guns and Roses LAGUNS - Banda tributo a Guns N' Roses ··

.

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Mi Clase Dbhandler
« Respuesta #4 en: Lunes 30 de Enero de 2006, 19:03 »
0
Me parece muy interesante todo lo que acabas de aportar, tienes razón, y pienso aplicar todo lo que haz dicho, porque de hecho, ya me estaba haciendo bolas en el cerebro pensando para cuando hubiera hojas de estilo (css), entonces aplicaré todo eso, y ya veremos.

Si me pudieras explicar lo ultimo que dijiste, no te entendí

Citar
Ahh y casi me olvido: acostumbrate a utilizar los nombres de los campos en las consultas INSERT o UPDATE, porque una modificación en la estructura de datos puede ser catastrófica en un sitio con bastante código.

Gracias
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.