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

MVC ¿ y típicas técnicas ?

Estas en el tema de MVC ¿ y típicas técnicas ? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, Mmmm pienso que hacer una arquitectura MVC no es difícil, puede hacerse un ejemplo que sea pequeñito y ser funcional (seguir los conceptos que ...
  #1 (permalink)  
Antiguo 13/04/2007, 11:10
 
Fecha de Ingreso: enero-2005
Mensajes: 149
Antigüedad: 19 años, 3 meses
Puntos: 2
MVC ¿ y típicas técnicas ?

Hola,

Mmmm pienso que hacer una arquitectura MVC no es difícil, puede hacerse un ejemplo que sea pequeñito y ser funcional (seguir los conceptos que dice MVC). Hacerlo a una escala mas grande solo sigue siendo "facil" si se tienen asentados los conceptos de POO...

Comprendo, hasta cierto punto MVC pero llega un momento, que cuando sigues leyendo... Aparecen palabras nuevas tales como: Scaffolding, smart urls, CRUD, helpers, routers, uso de separadores de directorio "DS o DIRSEP", dispatcher... uf uf

Estas últimas técnicas que he comentado, realmente, ¿ no son en sí parte de lo que a MVC se refiere, no ? Son clases añadidas o alguna técnica compatible con el patrón... ¿ estoy en lo correcto ?

Gracias de antemano

Última edición por yoguuu; 13/04/2007 a las 12:04 Razón: Para arreglarlo :S
  #2 (permalink)  
Antiguo 13/04/2007, 12: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
Re: MVC ¿ y típicas técnicas ?

MVC en si es un termino simple, y lo puedes implementar de forma muy concreta y facil.

En si un modelo MVC podria ser esto:
Código PHP:
include( 'models/clientes.php' );
include( 
'templates/base.php' );

$clientes = new clientes();
// Hacer algo con clientes como:
$datos $clientes->findByPk);

$datos['costoTotal'] = 30*4;

$viewCliente = new view'templates/clientes.php' );
$viewCliente->assign$datos );
$viewCliente->render(); 
Como ves estas separando la forma de traer los datos (modelo), donde los procesas (el script/controller) y la forma de desplegarlos (vista).

Ahora, si quieres usar una forma mas sencilla de llamar a tus archivos, empiezas a usar routers y dispatchers:
index.php
Código PHP:
$controller $_GET['controller'];
$action $_GET['action'];

include( 
"controllers/$controller.php" );
$controller = new $controller();
$controller->$action();
include( 
"template/base.php" );
$view = new view();
$view->setTemplate"templates/$action.php" );
$view->assignVars$controller->getVars() );
$view->render(); 
Ahora dices no ps no quiero llamar a mis archivos asi de index.php?controller=algo&action=otro, entonces usas smart urls para reemplazar la accion y el controlador, de ahi te creces mas a usar mas terminos.

Lo ideal es implementar un sistema 100% OOP, donde no existan casi funciones directas mas que las que el propio PHP te brinda, espero que con esto te resuelva algunas dudas.

Salu2
  #3 (permalink)  
Antiguo 13/04/2007, 14:39
 
Fecha de Ingreso: enero-2007
Mensajes: 272
Antigüedad: 17 años, 4 meses
Puntos: 5
Re: MVC ¿ y típicas técnicas ?

Cita:
Iniciado por GatorV Ver Mensaje
Lo ideal es implementar un sistema 100% OOP, donde no existan casi funciones directas mas que las que el propio PHP te brinda, espero que con esto te resuelva algunas dudas.
Esto último no me queda muy claro GatorV, podrías específicar un poco más...

Gracias...
  #4 (permalink)  
Antiguo 13/04/2007, 15:09
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
Re: MVC ¿ y típicas técnicas ?

Me refiero a que el ideal es moverse a programar en un sistema 100% POO, y dejar de programar "Orientado a Funciones" asi es mas facil cuando por decir programas en lenguajes 100% OO, como Java, C#, que no hay funciones globales, todo es un objeto.

Si empiezas a programar asi en PHP, en un futuro cuando quieras mudarte a Java, C#, etc. no te sera dificil adaptar la forma de programar.

Salu2
  #5 (permalink)  
Antiguo 13/04/2007, 17:42
 
Fecha de Ingreso: enero-2005
Mensajes: 149
Antigüedad: 19 años, 3 meses
Puntos: 2
De acuerdo Re: MVC ¿ y típicas técnicas ?

Mmmm GatorV gracias por responder tio... y además te curras un ejemplito que está excelente.

Pero yo tampoco acabo de comprender bien a lo que te refieres con funciones directas y 100% POO.

Lo de funciones directas me crea confusión por que no me imagino una clase sin métodos jeje y digo métodos por que para mí el contexto cambia, para mi esto sería una función directa:

Código PHP:
<?php
include( 'models/clientes.php' );

// Instanciamos el objeto
$objeto = new clientes();

// Llamamos a una funcion directamente
clientes::findByPK);

/*
      La cosa es que no llamamos al método bajo el contexto de un objeto    
      ($objeto->...) sino que se llama directamente...
*/
?>
A la hora de crear clases y usarlas es una buena practica acceder a los métodos y atributos instanciando la clase en un objeto y desde el objeto acceder a los miembros de la clase, no ? Tal que así:

Código PHP:
<?php
include( 'models/clientes.php' );

// Instanciamos el objeto
$objeto = new clientes();

// Llamamos al método dentro del contexto del objeto "$objeto"
$objeto->findByPK);

?>
Es esto a lo que te referias con funcion directa y 100% POO o estoy tremendamente equivocado ??? :S

Espero respuesta, de quien tenga la seguridad de saberlo...
Muchas Gracias !!!!
  #6 (permalink)  
Antiguo 13/04/2007, 20:32
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
Re: MVC ¿ y típicas técnicas ?

Me refiero a evitar tener funciones por ahi sin que sepas de que clase pertenecen por decir:
Código PHP:
class algo {
     public function 
hazAlgo() {
            
$db = new DB(); // Hasta aqui todo bien
            
$campo dameCampo1(); // Aqui es donde esta el error, la funcion dameCampo1(); de donde viene, a que clase se contiene, etc.
     
}

Si te das cuenta la funcion ahi entremetida en la clase no se ve bien, y es dificil al leer el codigo saber de donde viene o a que "paquete" o "libreria" pertenece.
  #7 (permalink)  
Antiguo 14/04/2007, 08:11
 
Fecha de Ingreso: enero-2005
Mensajes: 149
Antigüedad: 19 años, 3 meses
Puntos: 2
Re: MVC ¿ y típicas técnicas ?

Ok, aclarado. Gracias GatorV y a lucasarts_18 por colaborar :)
Ahora queda la practica... jeje conceptos POO e implementación de MVC... y leer, leer muchoooo.....

Una vez más, gracias ;)
  #8 (permalink)  
Antiguo 15/04/2007, 16:36
 
Fecha de Ingreso: enero-2003
Mensajes: 10
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: MVC ¿ y típicas técnicas ?

Hola, aprovecho este post para una duda que me viene.

Crear una web usando el patron MVC, desde cero, no seria como crear un pequeño framework que podrias usar para otros proyectos?

Saludos
  #9 (permalink)  
Antiguo 15/04/2007, 19:09
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: MVC ¿ y típicas técnicas ?

El MVC es un patrón de diseño, la mejor solución de un problema recurrente concreto. Un framework es como una "caja de herramientas" que tu vas armando con las herramientas que te construyes para luego poder reutilizarlas.

Estas no deben estar atadas al sistema, deben ser genéricas, así poder luego reutilizarlas (de lo contrario la caja de herramientas solo serviría para un solo sistema).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #10 (permalink)  
Antiguo 16/04/2007, 03:10
 
Fecha de Ingreso: enero-2003
Mensajes: 10
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: MVC ¿ y típicas técnicas ?

Me refiero a que al hacer una web siguiendo este patron lo normal es ayudarse de un router, registry, etc, y que una vez montado este sistema podria considerarse un pequeño framework al usar varias de estas herramientas.

Tampoco se mucho de esto, solo he leido sobre MVC y suelen ayudarse de otros patrones. Quiero practicar con MVC, y creo que al montar el sistema basico para un proyecto, este puede servir para otros proyectos. Puede que me equivoque xD ya que aun no tengo practica, es solo una impresion.
  #11 (permalink)  
Antiguo 16/04/2007, 06:43
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: MVC ¿ y típicas técnicas ?

Yo creo que podria considerarse un mini sistema MVC generico, que luego de terminarlo podrias usarlo como "base" para varios proyectos.

Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #12 (permalink)  
Antiguo 16/04/2007, 07:57
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
Re: MVC ¿ y típicas técnicas ?

Todo depende, si tu sistema lo quieres hacer generico si te puede servir como un miniframework base para otros proyectos.

Si tu programacion la haces orientada justo a ese proyecto y lo atas a ese proyecto es dificil que lo puedas hacer generico.

Como siempre digo, todo es cuestion de disenio

Salu2
  #13 (permalink)  
Antiguo 16/04/2007, 08:11
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: MVC ¿ y típicas técnicas ?

Si, creo que ahora entiendo por donde puede venir tu razonamiento.

Sí, actualmente muchos "frameworks" incluyen internamente la posiblidad de hacer un MVC como parte estructural del uso del mismo, pero visto de esta forma, es una "herramienta" más que se incorpora, no es el MVC un framework.

¿Se entiende la diferencia?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #14 (permalink)  
Antiguo 16/04/2007, 08:20
 
Fecha de Ingreso: enero-2003
Mensajes: 10
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: MVC ¿ y típicas técnicas ?

Si, ahora lo entiendo mejor. Gracias
  #15 (permalink)  
Antiguo 16/04/2007, 14:03
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: MVC ¿ y típicas técnicas ?

No, gracias a ti por entender
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:49.