Professional Documents
Culture Documents
5 Librera MVA
ObjetivoPHP
Este documento contiene un pequeo manual de cmo se debe utilizar Agenor, una librera que nos proporciona una base para usar el Patrn MVA (Model View Adapter o Mediating-Controlling), que es un derivado del popular MVC.
ObjetivoPHP.com [Escriba la direccin de la compaa] [Escriba el nmero de telfono] [Escriba el nmero de fax] [Seleccione la fecha]
CONTROLADOR
MODELO
VISTA
[Figura de relacionamiento MVC] En el MVC, el controlador recibe una peticin que proviene de la vista, este va a responder modificando el modelo, como la vista est observando al Modelo en todo momento, cuando se produce un cambio en este, la vista se actualiza por si sola. MVA persigue la misma finalidad de separar el modelo de datos de las vistas, lo nico que lo realiza de diferente forma, opta por no relacionar de manera alguna la vista con el modelo.
ADAPATADOR
VISTA
MODELO
[Esquema MVA] Con este esquema se observa que, la nica forma de relacionamiento que tienen la vista y el modelo es a travs del Adaptador (o controlador mediador) , por lo cual el nico que tiene conocimiento de que existe un modelo y una vista es el adaptador. MVA digamos es ms estricto que MVC, pues la vista est totalmente desacoplada del Modelo, de hecho no la conoce.
En base a estas ventajas es que nos decidimos por usar el patrn MVA. Es de destacar que no se pretende realizar un FrameWork, si no una librera con algunas utilidades bsicas para el desarrollo de una aplicacin web.
Conocimientos Recomendados: Programacin Orientada a Objetos Conocimiento de namespaces en PHP Ganas de Aprender. Bueno si cumples con estos requisitos, ests listo para comenzar a utilizar Agenor y agilizar el desarrollo de tus futuros sitios, puedes saltearte el prximo captulo pues solo expongo porque surge esta idea y comenzar con el manual propiamente dicho.
En definitiva, si bien los conceptos mencionados son todos vlidos, creo que lo son para aquellos que se dedican profesionalmente a este tema, ya sea por razones de productividad, eliminacin de errores, tener disponible con facilidad personal que domine la herramienta, etc; pero para alguien que realiza esto como pasatiempo (aficin) esos argumentos pierden sustento y es ms la satisfaccin personal de haberse sacado las ganas de realizar algo distinto y que aporte nuevos conocimientos sobre el lenguaje y las buenas prcticas de programacin, como he visto en algn blog que deca todos deberan tener un intento de crear su propio FW. Es as que comenc de a poco a desarrollar lo que hoy doy a conocer como AGENOR, mi primer intento de base para un sitio web, no es un FW. Quizs quede en un eterno alfa, pero y quien me quita lo programado.
Vemos en el cuadro de la izquierda la estructura del sitio. /agenor: contiene el motor de la aplicacin, core o engine. /configs: archivos de configuracin del sistema principal, son archivos php. /layout: encontramos las posibles plantillas para el sitio con sus diferentes tipos de archivos css, js, phtml, etc. /libs_external: toda librera que sea una utilidad de tercero debera de ubicarse en esta carpeta, ej: Doctrine, Dompdf, PHPExcel, etc. /log: carpeta para los archivos de errores del sistema. /modulos: esta carpeta, contiene la aplicacin en si misma o mejor dichos los mdulos en que este dividido el sistema. Como primer dato se puede llamar como uno quiera, no es necesario que se llame mdulos. /plugins: son pequeas funciones que realizan alguna funcin necesaria para el sistema. /public: carpeta donde se guardar documentos pblicos del sistema. /usrlib: puede existir o no en este caso es usada para extender alguna funcionalidad del sistema. .htaccess: archivo de configuracin de las urls de agenor. Index.php: arranca el sistema.
Vamos a analizar la carpeta de la aplicacin misma que en este caso es mdulos, aunque el nombre no tiene porqu ser este, es configurable por razones de seguridad, es decir se puede optar por un nombre ms raro, dado que la url no delata el nombre del mismo. Bajo este directorio encontraremos carpetas, estas carpetas como ser en la figura, acceso, form, icap, index, organigrama representan una aplicacin independiente en si cada una de la otra, incluso pueden
ObjetivoPHP.com |AGENOR LIBRERIA MVA 5