Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2006, 00:11
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 4 meses
Puntos: 5
Pregunta sobre FAQ "Conexión y ejecución con MySQL"

Buenas, no tengo mucha experiencia con clases y objetos en php pero me interesa el tema y las posibilidades que da. Hice algunas clases de prueba, leí al respecto y entiendo por qué muchas veces usar objetos simplifica el código, ahorra trabajo, da modularidad y flexibilidad, etc.

Ahora, el tema es el siguiente. Vi varios ejemplos, en otros foros y en este también, de clases para conectarse a un server MySql, hacer consultas, etc. Lo que no me queda claro es cuál es la ventaja de usar objetos para manejar este tipo de tareas.

Es decir, una clase que básicamente lo que hace es replicar los funciones de mysql, transformarla en métodos de objeto y devolver lo mismo que devuelve la función original... ¿qué aporta?

No simplifica o ahorra código, me parece. El mismo ejemplo, usando un objetos vs funciones:

Código PHP:
$obj=new conectarMySQL("SERVIDOR","USUARIO","PASSWORD","BASE DE DATOS");
$obj->conectar();
$obj->consultar("select * from urls limit 0,10");
while(
$row=$obj->obtendatos()) {
    echo 
"<br><a href=".$row['url'].">".$row['title']."</a>";
}
$obj->limpiaconsulta();
$obj->cerrarconexion(); 
8 líneas.

Usando las funciones mysql:

Código PHP:
$link mysql_connect("myServer","usr","pass") or die ("mensaje de error, etc");
mysql_select_db("base",$link) or die ("mensaje de error, etc");
$consulta mysql_query("select columna from tabla"$link);
while(
$rs=mysql_fetch_row($consulta) {
    echo 
$rs[0] . "<br>";
}
mysql_free_result($consulta);
mysql_close($link); 
8 líneas, también, que cualquiera entiende sin leer el código de una clase (o ver documentación, llegado el caso), y que evitan escribir unas cuantas líneas más para definir una clase.

O sea, hacerlo con clases es el mismo o más trabajo (más bien diría que más), y el único cambio son los nombres de las llamadas. A cambio, estamos ocupando más recursos del sistema. El tema de la reusabilidad dificilmente pueda ser un argumento en este caso.

Bueno, tal vez si se agregara algún tipo de manejo de errores más complejo a la clase u otra cosa, le vería más sentido, pero la verdad es que, como está, no le veo mucho.

Como decía, recién empiezo con clases/objetos así que puede que no esté viendo algo que sea evidente para alguien con más experiencia en el tema. La idea de este post es, justamente, recabar argumentos a favor (o en contra) de usar clases/objetos para este tipo de situaciones. Me gustaría saber cuáles serían para ustedes las ventajas/desventajas de cada caso.

Muchas gracias.

Califa