Bueno, mi primer artículo ;)
El objetivo de este artículo es orientar a aquellos noveles en el desarrollo con symfony que necesitan tener partials globales que puedan utilizar en cualquier módulo sin importar la aplicación sf.
Contexto: Como quizá ya sepan, los proyectos en symfony están divididos en «Aplicaciones» que se componen de «Módulos». Al tratarse symfony de un framework que aplica el MVC nos vemos en la buena obligación de separar las cosas.
El caso es que resulta muy probable que dentro de un módulo de nuestra aplicación «X» necesitemos utilizar un partial que ya hemos definido en la aplicación «Y».
Sin embargo symfony no permite este comportamiento, para ello debemos crear un plugin.
El plugin en cuestión debe contener un módulo, y dentro de este estarán los partials que podrán ser llamados desde cualquier aplicación del proyecto.
La estructura básica: Supongamos que se tiene la siguiente estructura de directorios en un proyecto sf:
app/
app0/
modules/
module0/
templates/
module1/
templates/
app1/
modules/
module0
app2/
modules/
module0
templates/Y se necesita llamar el mismo partial desde los módulos de las tres aplicaciones, entonces hay que crear un plugin vacío con la siguiente estructura de directorios:
plugins/
sfGlobalPartialsPlugin/
modules/
globalPartials/
templates/
_globalPartial0.php
_globalPartial1.phpHay que registrar el plugin en el proyecto (config/ProjectConfiguration.class):
$this->enablePlugins('sfDoctrinePlugin', 'sfGlobalPartialsPlugin');Y entonces, desde cualquier action de cualquier módulo puede llamarse:
$this->renderPartial('globalPartials/_globalPartial0');Y desde cualquier plantilla también:
<?php include_partial('globalPartials/_globalPartial1'); ?>Postdata: Este artículo surgió como resultado de Este debate en dmo.
Es mi primer artículo, así que seguro es muy mejorable, y quizá se me ha escapado alguna falla ortográfica. ;)
Cualquier retroalimentación es muy bienvenida.
Saludos.
Desarrollador Web, fanático de la programación, el Software Libre y el Power Metal
c_jay escribió
hace 1 meses
© Copyright 2008-2009 debug_mode=ON | Aviso legal | Contacto | FAQ | ¿Quiénes somos? |
#1
Muchas Gracias!!!...es exactamente lo que estaba necesitando...