Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Usar funciones (prog. estructurada) o clases y objetos (poo)

Estas en el tema de Usar funciones (prog. estructurada) o clases y objetos (poo) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola soy nuevo en la poo desde php (siempre he usado funciones en lugar de clases y objetos). El caso es que en mi web ...
  #1 (permalink)  
Antiguo 29/02/2012, 13:47
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Usar funciones (prog. estructurada) o clases y objetos (poo)

Hola soy nuevo en la poo desde php (siempre he usado funciones en lugar de clases y objetos).
El caso es que en mi web yo tengo un menu de opciones que lo cargo con valores de la BD.
Mi pregunta es: ¿Es mejor crear un objeto menu y cargar los valores de la BD sobre éste para luego mostrarlos en la web? o es mejor como lo hago ahora, es decir, visualizando los valores obtenidos directamente de la BD.

Es que tengo un gran dilema de cuando he de usar objetos y cuando es mejor usar funciones.

A ver si me podeis ayudar.
Gracias
  #2 (permalink)  
Antiguo 29/02/2012, 15:16
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

php desde hace un buen tiempo da soporte a programación orientada a objetos y todo lo que esta te beneficia, cuando usar cada una?? personalmente desde que comencé a meterme con la programación orientada a objetos todo para mi a sido un objeto XD (aunque todavía ando aprendiendo de esto), sin embargo soy de los que no haría un objeto para hacer un hola mundo, pero, si voy a hacer una aplicación me ves haciendo mi diseño del software para implementar las clases, pero es cuestión de gustos, además si ves la cantidad de framework que hay de php para agilizar el desarrollo de aplicaciones te darás cuenta que estos usan totalmente POO, de todas maneras sería cuestión de que busques comparaciones entre ambas, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 01/03/2012, 13:18
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Cita:
Iniciado por carlos_belisario Ver Mensaje
php desde hace un buen tiempo da soporte a programación orientada a objetos y todo lo que esta te beneficia, cuando usar cada una?? personalmente desde que comencé a meterme con la programación orientada a objetos todo para mi a sido un objeto XD (aunque todavía ando aprendiendo de esto), sin embargo soy de los que no haría un objeto para hacer un hola mundo, pero, si voy a hacer una aplicación me ves haciendo mi diseño del software para implementar las clases, pero es cuestión de gustos, además si ves la cantidad de framework que hay de php para agilizar el desarrollo de aplicaciones te darás cuenta que estos usan totalmente POO, de todas maneras sería cuestión de que busques comparaciones entre ambas, saludos
Gracias por la respuesta.
A ver si alguien mas me da su opinion.
  #4 (permalink)  
Antiguo 01/03/2012, 13:39
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Bueno, para mi, es una pregunta incompleta. Es decir, cuando tengo que usar objetos? es como decir, cuando tengo que usar PHP?

Básicamente depende de tu objetivo. Si lo que quieres es mejorar, evidentemente la POO esta por encima, pero dependiendo de tu app, quizás lo mejor es hacer una función.

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #5 (permalink)  
Antiguo 01/03/2012, 13:45
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

No es el mejor lugar para preguntar mdromed, ten en cuenta que estas en el foro de OOP, tenemos la camiseta puesta :P, ahora en serio, personalmente utilizaria OOP hasta para el "hola mundo" de carlos, pero en tu caso que utilizas estructurado, no creo que tengas ganancia alguna en cambiar un menú a OOP.

Con respecto a a cuando utilizar objetos, bueno, siempre!

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 01/03/2012, 15:00
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

es que si trabajas con programación funcional y vas a empezar con la OOP tienes que hacer una reingienería de tu código, porque no es lo mismo, aunque algunos cuando comenzamos creemos que es agrupar las funciones en un objeto y ya, tienes que hacer un buen diseño de tus clases para que puedas sacar toda la ventaja que te da este paradigma, te aseguro que mientras te vayas metiendo más en el más vas a querer y despues vas a querer hacer un hola mundo con clases como te dice master, aunque no sea necesario :P, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 02/03/2012, 07:23
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Ok, gracias a todos.
Una cosa mas: ¿El rendimiento y consumo de los recursos del server da lo mismo usar "estructurado" que "orientado a objetos"?
  #8 (permalink)  
Antiguo 02/03/2012, 07:45
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Es una pregunta demasiado abierta. Depende de como este diseñado el sistema. Si es un hola mundo, irá mucho más rápido con programación estructurada.

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #9 (permalink)  
Antiguo 02/03/2012, 08:21
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Cita:
Iniciado por miktrv Ver Mensaje
Es una pregunta demasiado abierta. Depende de como este diseñado el sistema. Si es un hola mundo, irá mucho más rápido con programación estructurada.

Un saludo!
Claro, tienes razon.
Me refiero a una web en la que seria bueno usar objetos pero decidiera hacerlo con estructurado
  #10 (permalink)  
Antiguo 02/03/2012, 10:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Cita:
Iniciado por miktrv Ver Mensaje
Es una pregunta demasiado abierta. Depende de como este diseñado el sistema. Si es un hola mundo, irá mucho más rápido con programación estructurada.

Un saludo!
Sí es mucho más rápido usando estructurada a POO, con un simple script:
Código PHP:
Ver original
  1. // poo
  2. class HelloWorld {
  3.     public function say() {
  4.         echo "hello world!";
  5.     }
  6. }
  7.  
  8. // estructurada
  9. function HelloWorld() {
  10.     echo "hello world!";
  11. }

Haciendo un loop de 50000, obtuve estos resultados:

Para POO:
Took 0.132070 secs
Memory Start 312.55 kb
Memory End 313.16 kb

Para estructurada:
Took 0.036255 secs
Memory Start 311.85 kb
Memory End 312.27 kb
  #11 (permalink)  
Antiguo 02/03/2012, 10:44
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Bien ahí GatorV por tomarte el tiempo para hacer el bench, seria interesante ver el resultado con HelloWorld::say siendo static.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #12 (permalink)  
Antiguo 02/03/2012, 10:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Aquí esta static:
Código PHP:
Ver original
  1. class HelloWorld {
  2.     public static function say() {
  3.         echo "hello world!";
  4.     }
  5. }

Took 0.042479 secs
Memory Start 312.36 kb
Memory End 312.77 kb

Muy cercano a estructurada.

Saludos.
  #13 (permalink)  
Antiguo 02/03/2012, 11:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

y solo como a modo test, ahora ejecute el bench, solamente iniciando una vez el objeto antes del ciclo y solo usándolo dentro del ciclo:
Código PHP:
Ver original
  1. $hello = new HelloWorld();
  2. for ($i = 0; $i < 50000; $i++) {
  3.     $hello->say();
  4. }

Resultados:
Took 0.080739 secs
Memory Start 312.36 kb
Memory End 312.97 kb

Por lo que podemos suponer que es igual de rápido a estructurada, solamente es lento cuando creas múltiples objetos..
  #14 (permalink)  
Antiguo 02/03/2012, 14:57
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Usar funciones (prog. estructurada) o clases y objetos (poo)

Fenomeno.
Muchas gracias

Etiquetas: bd, php, poo
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 09:18.