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

PHP OO Duda principiante sobre POO y MVC

Estas en el tema de Duda principiante sobre POO y MVC en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola a todos! Estoy comenzando con POO, estuve leyendo bastante teoría, pero ya no entendía nada así que pase a la práctica de una vez ...
  #1 (permalink)  
Antiguo 11/09/2012, 14:11
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 1 mes
Puntos: 7
Duda principiante sobre POO y MVC

hola a todos!

Estoy comenzando con POO, estuve leyendo bastante teoría, pero ya no entendía nada así que pase a la práctica de una vez y es acá donde comienzan a surgir las dudas.

Estoy siguiendo básicamente el esquema utilizado por Eugenia Bahit en su pequeño pero interesante libro "POO y MVC en PHP"

Entonces mi duda puntualmente es como presento los datos cuando tengo que utilizar un bucle for o while para mostrar los datos?


Este es el ejemplo del libro(un poco modificado):

El controlador hace una consulta a traves del model y junta los datos enviandolos a la lógica de la vista:

controlador
Código PHP:
...

$usuario->get($user_data);
            
$data = array(
                
'nombre'=>$usuario->nom_usuario,
                
'email'=>$usuario->email_usuario
            
);
            
retornar_vista(VIEW_EDIT_USER$data);

... 
y la vista va poniendo estos datos en el template y lo imprime:

vista
Código PHP:

...

function 
retornar_vista($vista$data=array()) {
    global 
$diccionario;
    
$tmp_encabezado '../site_media/html/globales/encabezado.html';
    
$encabezado file_get_contents($tmp_encabezado);
    
    
    
$html get_template('template');
    
$html str_replace('{encabezado}'$encabezado$html);
    
$html str_replace('{subtitulo}'$diccionario['subtitulo'][$vista],$html);
    
$html str_replace('{formulario}'get_template($vista), $html);
    
$html render_dinamic_data($html$diccionario['form_actions']);
    
$html render_dinamic_data($html$diccionario['links_menu']);
    
$html render_dinamic_data($html$data);
    
    
    print 
$html;
}

... 

templatede usuarios :
Código HTML:
Ver original
  1. ...
  2.    
  3.         <h2>Administración de usuarios</h2>
  4.         <h3>{subtitulo}</h3>
  5.         <nav>
  6.             <a href="/recetas_beta/{VIEW_GET_USER}" title="Buscar usuario" >Editar usuario</a>
  7.             <a href="/recetas_beta/{VIEW_SET_USER}" title="Nuevo usuario" >Agregar usuario</a>
  8.         </nav>
  9.     </section>
  10.     <section>
  11.         <div id="mensaje">
  12.             {mensaje}
  13.         </div>
  14.         <div id="formulario">
  15.             {formulario}
  16.         </div>
  17.     </section>
  18. </body>
  19. ...


formulario usuario (que se introduce dentro de template en {formulario})

Código HTML:
Ver original
  1. <form action="{EDIT}" method="POST">
  2.  
  3.     <label>Nombre:</label>
  4.     <input type="text" name="nombre" id="nombre" value="{nombre}" required/>
  5.     <label>E-mail:</label>
  6.     <input type="email" name="email" id="email" readonly="readonly" value="{email}" required/>
  7.    
  8.     <input type="submit" name="enviar" id="enviar" value="Guardar cambios" />
  9. </form>

Eso esta muy claro, pero como hago para presentar el dato de muchos usuarios si fuera el caso, donde pongo el "for" o el "while", tengo entendido que poner código php en la vista no se puede....pero en la lógica de la vista no encuentro la forma de hacerlo.

Alguien podria ayudarme a encontrar la manera correcta de hacer esto en POO con MVC?

Desde ya muchas gracias!
  #2 (permalink)  
Antiguo 11/09/2012, 15:20
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Duda principiante sobre POO y MVC

ten en cuenta que la implementación de MVC que muestra es muy básica, al menos en el renderizador de plantillas sólo se limita a reemplazar variables, hoy en día existen motores más sofisticados como twig que te permiten realizar iteraciones y demás.

el mismo FW Codeigniter te permite tener vistas en formato PHP y puedes embeber pequeños bloques para poder iterar, o realizar operaciones básicas.

yo te recomiendo que si te vas a embarcar en un proyecto uses un FW ya probado y en una versión estable, hacer un FW MVC desde 0 junto con un proyecto no es algo recomendable.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 11/09/2012, 16:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda principiante sobre POO y MVC

Exacto, por lo mismo del sistema de templates que expones va a ser complicado que puedas iterar directamente en la vista, tendrías que armar todo en el controlador y solo retornar un string listo a la vista si quieres seguir con lo que estas haciendo.

Saludos.
  #4 (permalink)  
Antiguo 11/09/2012, 17:36
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 1 mes
Puntos: 7
Respuesta: Duda principiante sobre POO y MVC

Muchas gracias por sus respuestas!

El tema es que nunca maneje un FW, les pido su consejo ¿es mas fácil que estudie un FW para desarrollar un proyecto web antes que seguir estudiando e intentando programarlo por mi mismo en POO con MVC?

De nuevo gracias!
  #5 (permalink)  
Antiguo 11/09/2012, 18:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda principiante sobre POO y MVC

Claro, es mejor aprender usando un FW con buenas bases (SF2/ZF2).

Saludos.
  #6 (permalink)  
Antiguo 26/10/2013, 22:57
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Duda principiante sobre POO y MVC

Ya se q tiene su tiempo este post, pero quiero opinar como principiante.

Yo creo q el consejo de "aprender usando un FW" no es correcto para un principiante.
Antes de sentarse a codificar tiene q instruirse sobre la tecnica de "programacion orientada a objetos", entender q es una clase, un objeto y todo esa teoria, herencia, encapsulamiento, etc...

Un FW facilita las tareas a quien ya tiene conocimientos, pero no creo q sea nada practico q un principiante arranque con un FW si no a codificado la mas tonta clase para entender como funciona todo ese mundo.

Hago este comentario porq yo tambien estoy en el principio de poo en php y busco permanentemente material y siempre caigo en este foro y en muchos posts aconsejan lo mismo a gente q recien empieza.
  #7 (permalink)  
Antiguo 28/10/2013, 13:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda principiante sobre POO y MVC

El consejo se refiere a un principio fundamental:

"¿Es mejor que haga yo mi propio framework y haga algunas apps y luego use un FW comercial?".

No es que sea para aprender a programar, en ese caso obviamente lo mejor es aprender justamente a programar, y luego entonces programar. No puedes tomar un FW y programar si no tienes bases, eso es un hecho.
  #8 (permalink)  
Antiguo 29/10/2013, 16:15
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Duda principiante sobre POO y MVC

Cita:
Iniciado por reborn Ver Mensaje
Yo creo q el consejo de "aprender usando un FW" no es correcto para un principiante.
Antes de sentarse a codificar tiene q instruirse sobre la tecnica de "programacion orientada a objetos", entender q es una clase, un objeto y todo esa teoria, herencia, encapsulamiento, etc...
Estoy casi de acuerdo con esto, pero hay un matiz que creo que es importante,en la frase "aprender usando".
"Usando" te dice el "cómo".Pero no te dice el "por qué".Aparte, uno de los mayores problemas que veo en programadores, es que no miran otro código, o su código no es supervisado, por lo que se van adquiriendo hábitos de pensamiento, y de codificación que luego son complicados de corregir.
Ambas cosas se solucionan de la misma forma: mirando otros códigos, estudiando el código fuente de las herramientas que usas,leyendo sobre otros frameworks/librerias/lenguajes de programación/metodologías de programación.Usar es importante, pero entender los problemas que intentan resolver esos frameworks,librerias,lenguajes,etc, es lo que realmente te hace aprender.

Etiquetas: mvc, php, poo, principiante
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:45.