Foros del Web » Programando para Internet » PHP »

Al recoger datos de una consulta, ¿recoger datos en array o en atributos de objeto?

Estas en el tema de Al recoger datos de una consulta, ¿recoger datos en array o en atributos de objeto? en el foro de PHP en Foros del Web. Realizo una consulta, y el resultado lo tengo en un array. ¿Dejo ese array en el objeto, o lo correcto es ir elemento a elemento ...
  #1 (permalink)  
Antiguo 09/03/2011, 11:05
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Al recoger datos de una consulta, ¿recoger datos en array o en atributos de objeto?

Realizo una consulta, y el resultado lo tengo en un array. ¿Dejo ese array en el objeto, o lo correcto es ir elemento a elemento para meterlo en un atributo del objeto? Entiendo que lo correcdto es lo segundo pero es mucho trabajo y tampoco gano mucho.
  #2 (permalink)  
Antiguo 09/03/2011, 11:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

y según tu, ¿porque es correcto lo segundo que mencionas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/03/2011, 11:49
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

Porque el paradigma de la programación orientada a objetos, junto con las buenas prácticas de la misma, nos dice que empleemos métodos set y get para obtener los datos. Y un objeto tiene atributos, no un array de atributos.

Además, así lo hizo una vez alguien muy sabio.
  #4 (permalink)  
Antiguo 09/03/2011, 12:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

a ver, pero si ya tienes un arreglo... ¿cual es la sabia necesidad de cambiar a un objeto?

vamos... que redundar la información, por mucho paradigma positivo que le veas no tiene mucho sentido...

¿quien es ese señor que hizo lo que dices?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/03/2011, 12:31
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

Bueno, ¿entonces tú cómo lo haces? Me da la impresión de que ni usas objetos...

¿No conoces a quien lo hizo? ¡Madre mía!

  #6 (permalink)  
Antiguo 09/03/2011, 12:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

es simple, si quiero obtener un objeto uso el método para obtener un objeto... si quiero una arreglo, uso el método para obtener un arreglo...

y me es indiferente, claro que hay veces que es mas cómodo trabajar con un objeto cuando leemos propiedades manualmente, pero a veces también es mejor tratar con un arreglo cuando necesitamos iterarlo....

nadie está obligado a usar 100% objetos cuando trabajamos con el paradigma de objetos, y vamos, que si te es mas cómodo trabajar con un arreglo en lugar de un objeto, ¿para que complicarse en hacer lo contrario?

hay que tener bases para tomar la mejor decisión, tampoco se trata de hacer todo por las modas de patrones, paradigmas, etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 09/03/2011, 12:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

Cita:
Iniciado por pateketrueke Ver Mensaje
es simple, si quiero obtener un objeto uso el método para obtener un objeto... si quiero una arreglo, uso el método para obtener un arreglo...

y me es indiferente, claro que hay veces que es mas cómodo trabajar con un objeto cuando leemos propiedades manualmente, pero a veces también es mejor tratar con un arreglo cuando necesitamos iterarlo....

nadie está obligado a usar 100% objetos cuando trabajamos con el paradigma de objetos, y vamos, que si te es mas cómodo trabajar con un arreglo en lugar de un objeto, ¿para que complicarse en hacer lo contrario?

hay que tener bases para tomar la mejor decisión, tampoco se trata de hacer todo por las modas de patrones, paradigmas, etc...
No, si yo estoy de acuerdo. Es lo que pensaba hacer, porque me parecía mucho trabajo para nada. Pero era por si había "poderosas razones" para respetar hasta tal límite la programación orientada a objetos. Tal vez alguien podía decirme, por ejemplo, "ahora te cuesta un poco, pero dentro de unos meses te ahorrarás trabajo", o algo así. O por ejemplo, para realizar algún procesado de algún atributo (aunque eso también lo puedes hacer estando dentro del array).

Gracias por tu opinión, porque me ha ayudado a reafirmarme en mi posición y verlo más claro.

Por último, hombre, más que un método para obtener un "arreglo" (que deduzco que es como tú llamas a los arrays), yo pondría un atributo que fuera el array, ¿no? Como tú has dicho, tiene sus ventajas, pero lo malo es que toca guardarlo como una variable global, y el uso de variables globales parece que deja menos limpio el programa.

Última edición por un_tio; 09/03/2011 a las 13:00
  #8 (permalink)  
Antiguo 09/03/2011, 13:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

Cita:
Iniciado por un_tio Ver Mensaje
Por último, hombre, más que un método para obtener un "arreglo" (que deduzco que es como tú llamas a los arrays), yo pondría un atributo que fuera el array, ¿no? Como tú has dicho, tiene sus ventajas, pero lo malo es que toca guardarlo como una variable global, y el uso de variables globales parece que deja menos limpio el programa.
ahí si ya no te entendí... ¿quieres explicar un poco mas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 09/03/2011, 18:34
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

Cita:
Iniciado por pateketrueke Ver Mensaje
ahí si ya no te entendí... ¿quieres explicar un poco mas?
En pocas palabras: ¿guardar el array en un objeto o no guardarlo? He ahí la cuestión.
  #10 (permalink)  
Antiguo 09/03/2011, 22:26
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

PHP también permite cochinadas de ésta calaña :

Código PHP:
Ver original
  1. class Ejemplo {
  2.  
  3. public class Ejemplo($id) {
  4.  
  5. // Conectarse con alguna base de datos, por ejemplo con PDO
  6. $bd = new PDO('mysql:dbname=testdb', 'root', 'macoy123');
  7.  
  8. // Obtener un array con los resultados de la consulta.
  9. $datos = $bd->query(
  10. 'SELEC nombre, color, fecha
  11. FROM tabla
  12. WHERE id = ' . $id .'
  13. LIMIT 1
  14. ')->fetch(PDO::FETCH_ASSOC);
  15.  
  16. // Referenciar como parámetros los datos del array usando
  17. // "variables variables"
  18. foreach ($datos as $clave=>$valor) {
  19. $this->$clave = $valor;
  20. }
  21.  
  22. }
  23.  
  24. public function getNombre() {
  25. return $this->nombre;
  26. }
  27.  
  28. public function getColor() {
  29. return $this->color;
  30. }
  31.  
  32. public function getFecha() {
  33. return new DateTime($this->fecha);
  34. }
  35.  
  36. public function getParametrosComoArray() {
  37. return get_object_vars($this);
  38. }
  39.  
  40. }

variables variables

No tiene sentido guardar un array en una clase, si es que su único objetivo es obtener sus de elementos de forma individual. Mi humilde opinión

Saludos
__________________
Estreno blog ~ DesarrolladorWeb.cl :)

Última edición por RodrigoG; 09/03/2011 a las 22:31 Razón: retoques
  #11 (permalink)  
Antiguo 09/03/2011, 23:58
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: Al recoger datos de una consulta, ¿recoger datos en array o en atributos d

Podrías trabajar con el método mysql_fetch_object() para que te sientas más cómodo trabajando con objetos... o por otro lado hacer un método dentro de la clase q reciba un array y ahi se encargue de pasar los valores a sus atributos, cosa que cuando requieras (en caso lo necesites varias veces) pasar los valores del array lo haga el método q te digo...
__________________
Un poco de Karmita no te va a hacer a ti pobre ni a mi rico... colabórame px ;)... Twitter: @josetejadauch

Etiquetas: atributos, objeto, recoger
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 11:31.