PDF de programación - Symfony

Imágen de pdf Symfony

Symfonygráfica de visualizaciones

Actualizado el 18 de Abril del 2021 (Publicado el 11 de Abril del 2021)
144 visualizaciones desde el 11 de Abril del 2021
136,9 KB
12 paginas
Creado hace 8a (28/01/2013)
Published on Marco de Desarrollo de la Junta de Andalucía (http://madeja.i-administracion.junta-
andalucia.es/servicios/madeja)
Symfony

Área: Construcción de Aplicaciones por Capas
Grupo: PHP
Carácter del recurso: Recomendado
Tecnologías: PHP

Código: RECU-0263
Tipo de recurso: Referencia
Descripción
Symfony es un framework cuyo principal objetivo es simplificar el desarrollo de aplicaciones en PHP mediante la automatización
de algunos de los patrones utilizados para resolver las tareas comunes. Dado la normalización y estructuración que introduce el
framework en el desarrollo, una de las ventajas que rápidamente se observan es un aumento en código más legible y más fácil
de mantener. Por último, un framework facilita la programación de aplicaciones, ya que encapsula operaciones complejas en
instrucciones sencillas.
Con este framework, es posible optimizar el desarrollo de aplicaciones web. Permite la separación de la lógica de negocio y la
lógica del servidor, así como la capa de presentación de la aplicación. Symfony aporta diversas herramientas y clases con el
objetivo de reducir el tiempo de desarrollo de una aplicación web compleja. Proporciona automatismos para las tareas más
comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación.
Symfony está desarrollado completamente con PHP 5. Ha sido probado en numerosos proyectos reales y se utiliza en sitios
web de comercio electrónico de primer nivel. Symfony es compatible con la mayoría de gestores de bases de datos, como
MySQL, PostgreSQL, Oracle y SQL Server de Microsoft. Se puede ejecutar tanto en plataformas nix (Unix, Linux, etc.) como en
plataformas Windows. A continuación se muestran algunas de sus características. Symfony se diseñó para que se ajustara a
los siguientes requisitos:

Tiene un proceso de instalación y configuración bastante sencillo.
No tiene dependencias con un gestor de base de datos determinado.
Es muy adaptable a los caso más complejos de negocio.
Basado en la premisa de "convenir en vez de configurar", en la que el desarrollador sólo debe configurar aquello que no es
convencional.
Sigue la mayoría de mejores prácticas y patrones de diseño para la web.
Estructura el código de manera que resulta fácil de leer ya que incluye comentarios de phpDocumentor, lo que mejora de
forma sensible, el mantenimiento del código.
Fácil de extender, lo que permite su integración con librerías desarrolladas por terceros.

La implementación del MVC que realiza Symfony
Piense por un momento cuántos componentes se necesitarían para realizar una página sencilla que muestre un listado de las
entradas o artículos de un blog. Son necesarios los siguientes componentes:

La capa del Modelo

Abstracción de la base de datos
Acceso a los datos

La capa de la Vista

Vista
Plantilla
Layout

La capa del Controlador
Controlador frontal
Acción

En total son siete scripts, lo que parecen muchos archivos para abrir y modificar cada vez que se crea una página.

1

Afortunadamente, Symfony simplifica este proceso. Symfony toma lo mejor de la arquitectura MVC y la implementa de forma
que el desarrollo de aplicaciones sea rápido y sencillo.
En primer lugar, el controlador frontal y el layout son comunes para todas las acciones de la aplicación. Se pueden tener varios
controladores y varios layouts, pero solamente es obligatorio tener uno de cada. El controlador frontal es un componente que
sólo tiene código relativo al MVC, por lo que no es necesario crear uno, ya que Symfony lo genera de forma automática.
La otra buena noticia es que las clases de la capa del modelo también se generan automáticamente, en función de la estructura
de datos de la aplicación. La librería Propel se encarga de esta generación automática, ya que crea el esqueleto o estructura
básica de las clases y genera automáticamente el código necesario. Cuando Propel encuentra restricciones de claves foráneas
(o externas) o cuando encuentra datos de tipo fecha, crea métodos especiales para acceder y modificar esos datos, por lo
que la manipulación de datos se convierte en algo más sencillo.
La abstracción de la base de datos es completamente transparente para el programador, ya que se realiza de forma nativa
mediante PDO (PHP Data Objects). Así, si se cambia el sistema gestor de bases de datos en cualquier momento, no se debe
reescribir ni una línea de código, ya que tan sólo es necesario modificar un parámetro en un archivo de configuración.
Por último, la lógica de la vista se puede transformar en un archivo de configuración sencillo, sin necesidad de programarla.
El Controlador
En Symfony, la capa del controlador, que contiene el código que liga la lógica de negocio con la presentación, está dividida en
varios componentes que se utilizan para diversos propósitos:

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.
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. Se utilizan muy a menudo en la capa del controlador.
Los filtros son trozos de código ejecutados para cada petición, antes o después de una acción. Por ejemplo, los filtros de
seguridad y validación son comúnmente utilizados en aplicaciones web. Puedes extender el framework creando tus
propios filtros.

El Controlador Frontal
Todas las peticiones web son manejadas por un solo controlador frontal, que es el punto de entrada único de toda la aplicación
en un entorno determinado. Cuando el controlador frontal recibe una petición, utiliza el sistema de enrutamiento para asociar el
nombre de una acción y el nombre de un módulo con la URL escrita (o pinchada) por el usuario.
Si no estás interesado en los mecanismos internos de Symfony, eso es todo que necesitas saber sobre el controlador frontal.
Es un componente imprescindible de la arquitectura MVC de Symfony, pero raramente necesitarás cambiarlo.
El Trabajo del Controlador Frontal en Detalle
El controlador frontal se encarga de despachar las peticiones, lo que implica algo más que detectar la acción que se ejecuta.
De hecho, ejecuta el código común a todas las acciones, incluyendo:
1. Carga la clase de configuración del proyecto y las librerías de Symfony.
2. Crea la configuración de la aplicación y el contexto de Symfony.
3. Carga e inicializa las clases del núcleo del framework.
4. Carga la configuración.
5. Decodifica la URL de la petición para determinar la acción a ejecutar y los parámetros de la petición.
6. Si la acción no existe, redireccionará a la acción del error 404.
7. Activa los filtros (por ejemplo, si la petición necesita autenticación).
8. Ejecuta los filtros, primera pasada.
9. Ejecuta la acción y produce la vista.
10. Ejecuta los filtros, segunda pasada.
11. Muestra la respuesta.
El Controlador Frontal por defecto
El controlador frontal por defecto, llamado index.php y ubicado en el directorio web/ del proyecto, es un simple script,

<?php
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod',
false);
sfContext::createInstance($configuration)->dispatch();

El controlador frontal incluye la configuración de la aplicación. La llamada al método dispatch() del objeto sfController (que es el
controlador principal de la arquitectura MVC de Symfony) despacha la petición

2

Acciones
Las acciones son el corazón de la aplicación, puesto que contienen toda la lógica de la aplicación. Las acciones utilizan el
modelo y definen variables para la vista. Cuando se realiza una petición web en una aplicación Symfony, la URL define una
acción y los parámetros de la petición.
La clase de la acción
Las acciones son métodos con el nombre executeNombreAccion de una clase llamada nombreModuloActions que hereda de la
clase sfActions y se encuentran agrupadas por módulos. La clase que representa las acciones de un módulo se encuentra en
el archivo actions.class.php, en el directorio actions/ del módulo. Se muestra un ejemplo de un archivo actions.class.php con
una única acción index para todo el módulo mimodulo. Ejemplo de la clase de la acción

class mimoduloActions extends sfActions
{
public function executeIndex()
{
// ...
}
}

Obteniendo Información en las Acciones
Las clases de las acciones ofrecen un método para acceder a la información relacionada con el controlador y los objetos del
núcleo de Symfony. Se muestra como utilizarlos.

class mimoduloActions extends sfActions
{
public function executeIndex($peticion)
{
// Obteniendo parámetros de la petición
$password = $peticion->getParameter('password');
// Obteniendo información del controlador
$nombreModulo = $this->getModuleName();
$nombreAccion = $this->getActionName();
// Obteniendo objetos del núcleo del framework
$sesionUsuario = $this->getUser();
$respuesta = $this->getResponse();
$controlador = $this->getController();
$contexto = $this->getContext();
// Creando variables de la acción para pasar información a la plantilla
$this->setVar('parametro', 'valor');
$this->parametro = 'valor'; // Versión corta.
}
}

El "singleton" del contexto
En el controlador frontal ya se ha visto una llamada a sfContext::createInstance(). En una acción, el método getContext()
devuelve el mismo singleton. Se trata de un objeto muy útil que guarda una referencia a todos los objetos del núcleo de
Symfony relacionados con una petición dada, y ofrece un método accesor para cada uno de ellos:

sfController: El objeto controlador (->getController())
sfRequest: El objeto de la petición (->getRequest())
sfResponse: El objeto de la respuesta (->getResponse())
sfUser: El objeto de la sesión del usuario (->getUser())
sfDatabaseConnection: La conexión a la base de datos (->ge
  • Links de descarga
http://lwp-l.com/pdf19087

Comentarios de: Symfony (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad