Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   MVC ¿ y típicas técnicas ? (http://www.forosdelweb.com/f68/mvc-tipicas-tecnicas-481200/)

yoguuu 13/04/2007 11:10

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 :arriba:

GatorV 13/04/2007 12:13

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

lucasarts_18 13/04/2007 14:39

Re: MVC ¿ y típicas técnicas ?
 
Cita:

Iniciado por GatorV (Mensaje 1966861)
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...:arriba:

GatorV 13/04/2007 15:09

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

yoguuu 13/04/2007 17:42

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 :borracho:

Espero respuesta, de quien tenga la seguridad de saberlo...
Muchas Gracias !!!! :si:

GatorV 13/04/2007 20:32

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.

yoguuu 14/04/2007 08:11

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 ;)

BlisZ 15/04/2007 16:36

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

enriqueplace 15/04/2007 19:09

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).

BlisZ 16/04/2007 03:10

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.

Fridureiks 16/04/2007 06:43

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

GatorV 16/04/2007 07:57

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

enriqueplace 16/04/2007 08:11

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?

BlisZ 16/04/2007 08:20

Re: MVC ¿ y típicas técnicas ?
 
Si, ahora lo entiendo mejor. Gracias :-)

enriqueplace 16/04/2007 14:03

Re: MVC ¿ y típicas técnicas ?
 
No, gracias a ti por entender ;-)


La zona horaria es GMT -6. Ahora son las 01:26.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.