Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 13-abr-2007, 11:10   #1 (permalink)
yoguuu ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 104
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-abr-2007 a las 12:04. Razón: Para arreglarlo :S
yoguuu está desconectado   Responder Citando
Antiguo 13-abr-2007, 12:13   #2 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 14.160
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
GatorV está desconectado   Responder Citando
Antiguo 13-abr-2007, 14:39   #3 (permalink)
lucasarts_18 ha deshabilitado el karma
 
Fecha de Ingreso: enero-2007
Mensajes: 231
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...
lucasarts_18 está desconectado   Responder Citando
Antiguo 13-abr-2007, 15:09   #4 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 14.160
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
GatorV está desconectado   Responder Citando
Antiguo 13-abr-2007, 17:42   #5 (permalink)
yoguuu ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 104
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 !!!!
yoguuu está desconectado   Responder Citando
Antiguo 13-abr-2007, 20:32   #6 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 14.160
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.
GatorV está desconectado   Responder Citando
Antiguo 14-abr-2007, 08:11   #7 (permalink)
yoguuu ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 104
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 ;)
yoguuu está desconectado   Responder Citando
Antiguo 15-abr-2007, 16:36   #8 (permalink)
BlisZ está en el buen camino
 
Fecha de Ingreso: enero-2003
Mensajes: 10
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
BlisZ está desconectado   Responder Citando
Antiguo 15-abr-2007, 19:09   #9 (permalink)
Colaborador
enriqueplace tiene algunos puntos positivos de karma
 
Avatar de enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 752
Enviar un mensaje por Skype™ a enriqueplace
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).
__________________
Saludos, Enrique Place

Reserva tu lugar, no te lo pierdas:
Nuevo Taller a Distancia de POO para PHP (2008)
enriqueplace está desconectado   Responder Citando
Antiguo 16-abr-2007, 03:10   #10 (permalink)
BlisZ está en el buen camino
 
Fecha de Ingreso: enero-2003
Mensajes: 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.
BlisZ está desconectado   Responder Citando
Antiguo 16-abr-2007, 06:43   #11 (permalink)
Fridureiks ha deshabilitado el karma
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.247
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
Fridureiks está desconectado   Responder Citando
Antiguo 16-abr-2007, 07:57   #12 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 14.160
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
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 16-abr-2007, 08:11   #13 (permalink)
Colaborador
enriqueplace tiene algunos puntos positivos de karma
 
Avatar de enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 752
Enviar un mensaje por Skype™ a enriqueplace
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?
__________________
Saludos, Enrique Place

Reserva tu lugar, no te lo pierdas:
Nuevo Taller a Distancia de POO para PHP (2008)
enriqueplace está desconectado   Responder Citando
Antiguo 16-abr-2007, 08:20   #14 (permalink)
BlisZ está en el buen camino
 
Fecha de Ingreso: enero-2003
Mensajes: 10
Re: MVC ¿ y típicas técnicas ?

Si, ahora lo entiendo mejor. Gracias
BlisZ está desconectado   Responder Citando
Antiguo 16-abr-2007, 14:03   #15 (permalink)
Colaborador
enriqueplace tiene algunos puntos positivos de karma
 
Avatar de enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 752
Enviar un mensaje por Skype™ a enriqueplace
Re: MVC ¿ y típicas técnicas ?

No, gracias a ti por entender
__________________
Saludos, Enrique Place

Reserva tu lugar, no te lo pierdas:
Nuevo Taller a Distancia de POO para PHP (2008)
enriqueplace está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 1 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 10:30.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93