Foros del Web » Programando para Internet » PHP »

Creando Librerias para el manejo de DB ¿IDEAS?

Estas en el tema de Creando Librerias para el manejo de DB ¿IDEAS? en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo unas librerias para el manejo de MySQL y de PostgreSQL, claro está que es en base a las que existen ...
  #1 (permalink)  
Antiguo 27/04/2006, 14:26
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Creando Librerias para el manejo de DB ¿IDEAS?

Hola a todos, estoy haciendo unas librerias para el manejo de MySQL y de PostgreSQL, claro está que es en base a las que existen mysql, mysqli y pgsql
por ahora tengo las siguientes funciones:

conectar(); - Crea una conección a la DB
seleccionar_db(); - Selecciona una DB dada
liberar_resultados(); - Libera los resultados de la ultima consulta
desconectar(); - Cierra la conección a la DB
consultar(); - Ejecuta una consulta SQL en la DB
resultado(); - Resultados linea a linea NUM = respuesta en matriz numerica ; ASO = respuesta en matriz asociativa
numero_resultados(); - Número de resultados en la ultima consulta
numero_campos(); - Número campos en el resultado
error(); - Errores generados en la DB (Mensaje)
info_version(); - Información de la versión del servidor de la DB
ping(); - Hace ping a la conección establecida y si no reacciona, intenta crear de nuevo la conección
guardar(); - Guarda un registro con los datos pasados
borrar(); - Borra un registro con los datos pasados
modificar(); - Modifica un registro con los datos pasados

Me pueden dar más ideas como de que otras funciones puedo incluir?? que hagan que??? porque con estas hasta ahora me es suficiente pero....... me gustaria saber que otras funciones le podría anexar para hacer las librerias un poco más robustas y luego publicarlas :D

De antemano muchas gracias por la ayuda!!! XD
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #2 (permalink)  
Antiguo 27/04/2006, 15:09
Avatar de ProWebDeveloper  
Fecha de Ingreso: julio-2005
Ubicación: Maracay - Edo. Aragua
Mensajes: 117
Antigüedad: 12 años, 4 meses
Puntos: 1
Hola amigo de verdad me llama mucho la atencion sobre lo de las librerias que estas desarrollando.. es posible que puedas compartir lo que llevas hecho conmigo? o con cualquiera de los que estan en el foro? si es asi publicalo aqui y si no es molestia envialo a mi email [email protected] gracias y disculpa el abuso amigo..

Saludos y estamos a la orden para cualquier cosa..

Bye!!!
  #3 (permalink)  
Antiguo 27/04/2006, 17:21
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Librerias aqui!

Bueno todo el que quiera las librerias las pide porque intenté poner el codigo aqui pero no fue posible por que son muchas lineas!!!

Pero bueno ahi las mandé a ProWebDeveloper!!!

Chao!!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #4 (permalink)  
Antiguo 27/04/2006, 17:30
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 12 años, 5 meses
Puntos: 24
Librerias escritas en que lenguaje?
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #5 (permalink)  
Antiguo 27/04/2006, 17:41
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Sonrisa

Cita:
Iniciado por TolaWare
Librerias escritas en que lenguaje?
Estan en PHP5!!! son unas clases para utilizar!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #6 (permalink)  
Antiguo 27/04/2006, 23:32
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 12 años, 5 meses
Puntos: 24
mmm, interesante. Podrias subirla a algun servidor de archivos y pasarnos el link.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #7 (permalink)  
Antiguo 28/04/2006, 03:20
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 12 años, 6 meses
Puntos: 7
Suena muuuy bien, si quieres me las pasas y yo las coloco en mi web para la descarga(obviamente poniendo tus creditos) sino, pues nada, aunque de todos modos,¿podrias pasarmelas para echarle un ojo?, o si tienes web propia, podrias ponerlo en ella y proporcionar el link, como bien dice TolaWare.
mi email: anfeyg @ gmail.com

Gracias.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #8 (permalink)  
Antiguo 28/04/2006, 13:26
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Seria bueno que las publicaras ya que ahora no tengo web

de todas maneras te las mando al correo ok??!

Chao!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #9 (permalink)  
Antiguo 28/04/2006, 13:30
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
mmm pues no estaria de mas funciones que implementen show tables y show columns.
  #10 (permalink)  
Antiguo 28/04/2006, 13:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Me parece muy bien que implementen un desarrollo de este estilo .. pero a veces aunque sea como referencia habría que ver el trabajo de otras "capas de abstracción de BBDD" ya implementadas.

Por ejemplo:

ADO DB
http://adodb.sourceforge.net/

ó

ezSQL
http://www.jvmultimedia.com/portal/node/6

Tomen notas de algunas funcionalidades de estas "capas de abastracción de BBDD" .. Por ejemplo de "ADOdb" la forma de manejar el tema del tedioso "paginado" si usas Mysql .. o usas otro motor de BBDD como SQL Server .. etc. De ezSQL .. su sencillez (pero no por ello "potencia").

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 28/04/2006, 14:46
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 12 años, 5 meses
Puntos: 24
No hay que olvidarse del clasico Hybernate
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #12 (permalink)  
Antiguo 29/04/2006, 19:50
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Cita:
Iniciado por TolaWare
No hay que olvidarse del clasico Hybernate
Primero que todo gracias a todos por sus mensajes y opiniones

y...... que es "Hybernate"????? me podrias explicar????
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #13 (permalink)  
Antiguo 29/04/2006, 19:55
 
Fecha de Ingreso: enero-2006
Ubicación: mi casa
Mensajes: 255
Antigüedad: 11 años, 10 meses
Puntos: 0
librerias para manejar BD!!

Hey saludos :) yo tengo codeado unas funciones en PHP para manejar igual el MySQL (no clases, no me agrada la POO)

y de seguro unas ideas más:

Hacer un backup
Crear usuarios.
Eliminar usuarios.
Eliminar tablas.
Poner/quitar privilegios a los usuarios.
Setear una contraseña

(eso es lo que yo tengo escrito :D)

un saludo.
  #14 (permalink)  
Antiguo 29/04/2006, 20:33
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 12 años, 5 meses
Puntos: 24
Cita:
Iniciado por JALF
Primero que todo gracias a todos por sus mensajes y opiniones

y...... que es "Hybernate"????? me podrias explicar????
Hybernate es un FrameWork de Java y .NET que maneja todo el mapeo objeto/relacional y las consultas a este.

mas info
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #15 (permalink)  
Antiguo 29/04/2006, 20:36
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 12 años, 6 meses
Puntos: 32
Lo que dice Cluster es real y lo comparto, si en la implementación de las funcionalidades vuelve a colocar código explícito para cada base de datos, estamos casi al principio del problema

Lo ideal, tal vez, es aplicar un "Patrón Fachada" (Facade Pattern) pero en vez de separar la implementación del código explícito que hace referencia a la base de datos, separar el producto que hace la implementación de la capa de "persistencia" (la idea del patrón de diseño es que no tenga lógica dentro, solo invocaciones).

O sea, crear una clase BaseDeDatos que tiene todos los métodos que nombras, pero en vez de implementarlos, haces invocaciones a los métodos del producto que ofrecen ese servicio.

La ventaja? colocas una capa intermedia propia (BaseDeDatos) y hoy usas ADOdb, pero mañana decides cambiar por otra, o implementar una propia de bajo nivel (que Dios no lo permita ) y tu código "cliente" de estos servicios no se entera del cambio.

Muchachos, dejemos de reinventar la rueda, si no, no avanzamos más. Existen muchos componentes reutilizables, pensemos en innovar y no en repetirnos... hay demasiados productos, por qué hacer otro más?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #16 (permalink)  
Antiguo 29/04/2006, 20:38
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 12 años, 6 meses
Puntos: 32
Ahhh ... pensé que me había equivocado de foro.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #17 (permalink)  
Antiguo 01/05/2006, 19:56
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Bueno tal ves esté reinventando la rueda! pero....... me canse de soportarme en cosas que otros han hecho y no saber como manejar eso internamente!!!!

Yo por lo menos he echo esto con el fin de reunir mis conocimientos en DB en varias clases y segundo para facilitarme la vida a la hora de programar porque lo que más quiero es tener control absoluto sobre mis desarrollos!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #18 (permalink)  
Antiguo 02/05/2006, 08:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por JALF
Bueno tal ves esté reinventando la rueda! pero....... me canse de soportarme en cosas que otros han hecho y no saber como manejar eso internamente!!!!

Yo por lo menos he echo esto con el fin de reunir mis conocimientos en DB en varias clases y segundo para facilitarme la vida a la hora de programar porque lo que más quiero es tener control absoluto sobre mis desarrollos!
Estás reinventado la rueda sinceramente. No es problema alguno hacerlo, sobre todo porqué así se aprende. De hecho muchos "desarrollos" nacen así y así gente que no quiere reinventar otra rueda tiene donde elegir. Pero, realmente .. "ojalá" que el proyecto aportase algo -más- que lo que ya hacen otros proyectos ya funcionando y probados.

Esto lo digo consecuentemente, por qué ahí tengo por mi parte un desarrollo "personal" que nació con una necesidad, tras "usarlo" várias veces me decidí a "liberarlo" y ahora hay mucha gente que lo usa. Mi "reinvención" de esta "rueda" nació por lo mismo que le sucede a mucha gente: no encontró algo que le acomodara a su tipo de desarrollos, ya sea por complejidad de uso .. de exceso? de funcionalidades que sobrecargan la aplicación .. en fin .. cada uno tiene sus justificaciones. (Me refiero a mi script simplón de autentificación de usuarios: "Autentificator" que algunos de UDs. conocen).

De hecho es probable que si tu terminas tu proyecto personal .. con todo el agrado y reconocimiento de "esto lo hice yo" .. o "funciona a mi pinta" .. si lo "publicas" (licencias tipo GPL .. etc) -otras- personas lo usen por ser más cercano a lo que ellos buscan vs a otras soluciones.

Lo que si que recomiendo es NO irse por el desarrollo de algo de este estilo extremadamente "reinventado" por el hecho de no "comprenderlo". Intenta entenderlo y ahí veras si te sirve o no .. y seguro que tomaras buenas ideas para un desarrollo más personalizado o desde cero. También recuerden que la mayoría de estos proyectos son "abiertos" .. para que si crean algún método nuevo .. alguna funcionalidad .. etc .. la compartan por el bien de todos los usuarios pasados y futuros de esa aplicación/código.

Por mi parte .. pese que me nutro del "Open Source" (y aporto a el lo que puedo), no quiere decir que tomo el primer "código" que se me cruza o me niego a "aprender" algo en concreto por qué tal cosa ya me lo hace. Hay un mínimo que se debe conocer como para saber "decidirse" por cual usar y preveer algún tipo de problema (algo que no haga la "classe" o código .. o que su implementación no sea viable bajo ese esquema ..).

Otro detalle .. Documenta bien tus desarrollos, no pienses que siempre vas a trabajar "sólo" .. Alguna vez tendrás que trabajar en un grupo con vários programadores. Ellos "podrían" aprender a usar -tus- classes y demás desarrollos tuyos .. pero en otro tipo de proyectos se busca que la gente que participe domine algunos "psudo-standars" tipo: Adodb (como capa de abastracción de BBDD) .. o "Smarty" (para manejo de plantillas) .. o "PEAR" .. Así la "adaptación" de un nuevo programador a un grupo de este estilo sería mucho más rápida. Hay más documentación pública, más usuarios que usan el sistema y te podrían ayudar a como enfocar un problema en base al uso de cierta classe "standard" .. etc.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #19 (permalink)  
Antiguo 02/05/2006, 12:37
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 13 años, 3 meses
Puntos: 2
Cluster como siempre muchas gracias por tus comentarios!!!!

Pero bueno esto nacio fue porque en mi tesis, hice esta clase para facilitarme la vida con mysql inicialmente y luego con mysqli, algo sencillo pero en ESPAÑOL!!!!

Algo de verdad entendible aunque no está de mal saber ingles no???

Ahora la extiendo a PostgreSQL porque como en MySQL hay que pagar para utilizarlo a nivel comercial, en cambio PostgreSQL hasta donde sé es libre por donde se le mire entonces ahora extiendo my clase a PostgreSQL y pues queria compartirla con la comunidad por el facil uso que tiene las clases.

Ahora ya le implementé la función "resultado_array()" y es que saca los resultados en un array asi:
Array
(
[0] => Array
(
[marca] => movistar
[minutos] => 2000
[valor_minuto] => 200
)
[1] => Array
(
[marca] => ola
[minutos] => 2500
[valor_minuto] => 200
)
[2] => Array
(
[marca] => comcel
[minutos] => 3000
[valor_minuto] => 250
)
)

Pero todas las funciones son cosas que necesito y que quiero compartir con la comunidad.

Otra cosa sabes donde puedo encontrar información de como documentar mis clases, mis desarrollos????

Chao y gracias!!!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #20 (permalink)  
Antiguo 02/05/2006, 13:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Dado que pusistes un ejemplo .. te hacía el comentario de "ver" como trabajan otros sistemas ya implementados .. Por ejemplo ezSQL

http://justinvincent.com/docs/ezsql/ez_sql_help.htm

Mira sus ejemplos para el método: get_results() .. arroja un resultado como array .. pero con la "grácia" de que el array puede ser numérica o asociativa .. y hay otros métodos mucho más concretos para taréas tipicas .. como por ejemplo get_row() (si sólo obtienes una "fila" de resultados) .. o un "get_var()" si sabes que sólo obtienes una columna (o ir a una columna concreta de un resultado).

En fin . .estos son algunos ejemplos de lo que ya "hacen" .. Me dejo fuera otras funcionalidades como la de "cachear" resultados de ezSQL y creo que también hace ADOdb .. etc, o los métodos especiales para hacer un "debugg" de la consulta SQL realizada .. por si estás desarrollando y tienes problemas hacer un seguimiento más cómodo al problema.

Sobre el tema de documentar tus classes. No soy el más indicado para esto .. pero existe una normativa al respecto la cual rigen aplicaciones como:

phpDocumentor
http://www.phpdoc.org/

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:22.