Symfony La Vista y el Controlador (MVC)
Cada Cosa en su lugar
Un patrón de arquitectura nos ayudará a… Ubicar correctamente nuestro código Separar funcionalidades Testear las partes y el todo Desarrollo Agil Cambia la implementación pero no la esencia Django-Python, MVC Framework-.Net, Struts- Java,Ruby on Rails
Evitar la duplicación de código Decorator apps/frontend/templates/
Patrón Decorator El patrón Decorator responde a la necesidad de añadir dinámicamente funcionalidad a un Objeto. Sirve Cuando la extensión mediante la herencia no es viable. Muy utilizado para separar contenido de presentación
Otros componentes de la vista Slots Partials
Analizando la estructura del layout La importancia de $sf_content Incluyendo hojas de Estilo, imágenes, y javaScripts. ¿Dónde están las referencias? La estructura del archivo view.yml
Principios de configuración en Symfony Para los muchos archivos de configuración de Symfony, la misma configuración se puede definir en diferentes niveles: La configuración por defecto se encuentra en el framework La configuración global para el proyecto (en config/) La configuración local de una aplicación (en apps/MYAPP/config/) La configuración local limitada a un módulo (en apps/MYAPP/modules/MYMODULE/config/)
El controlador frontal Es el único punto de entrada a la aplicación Carga la configuración y determina la acción a ejecutarse. Las acciones contienen la lógica de la aplicación. Verifican la integridad de las peticiones y preparan los datos requeridos por la capa de presentación.
El controlador frontal Los objetos request, response y session dan acceso a los parámetros de la petición, las cabeceras de las respuestas y a los datos persistentes del usuario Los filtros son trozos de código ejecutados para cada petición, antes o después de una acción.
Actions c class mimoduloActions extends sfActions { public function executeIndex($peticion) { // Obteniendo parametros de la petición $password = $peticion->getParameter('password'); // Obteniendo información del controlador $nombreModulo = $this->getModuleName();
Actions $nombreAccion = $this->getActionName(); // Obteniendo objetos del núcleo del framework $sesionUsuario = $this->getUser(); $respuesta = $this->getResponse(); $controlador = $this->getController(); $contexto = $this->getContext(); $this->setVar('parametro', 'valor'); $this->parametro = 'valor'; // Guardar información en la sesión del usuario $this->getUser()->setAttribute('nombre', $nombre); }
¿Ganas de profundizar? Symfony 1.2 la guía definitiva Capítulos 6 y 7.