Ver índice de contenidos del libro

3.3. Crear una aplicación web

Como se vio en el Capítulo 2, Symfony agrupa las aplicaciones relacionadas en proyectos. Todas las aplicaciones de un proyecto comparten la misma base de datos. Por tanto, para crear una aplicación web en primer lugar se debe crear un proyecto.

3.3.1. Crear el Proyecto

Los proyectos de Symfony siguen una estructura de directorios predefinida. Los comandos que proporciona Symfony permiten automatizar la creación de nuevos proyectos, ya que se encargan de crear la estructura de directorios básica del proyecto y con los permisos adecuados. Por tanto, para crear un proyecto se debe crear un directorio y decirle a Symfony que cree un proyecto en su interior.

Si has utilizado la instalación con PEAR, ejecuta los siguientes comandos:

> mkdir ~/miproyecto
> cd ~/miproyecto
> symfony init-project miproyecto

Si has instalado Symfony mediante SVN, puedes crear un proyecto con los siguientes comandos:

> mkdir ~/miproyecto
> cd ~/miproyecto
> php /ruta/hasta/data/bin/symfony init-project miproyecto

El comando symfony siempre debe ejecutarse en el directorio raíz del proyecto (en este ejemplo, miproyecto/) ya que todas las tareas que realiza este comando son específicas para cada proyecto.

La estructura de directorios creada por Symfony se muestra a continuación:

apps/
batch/
cache/
config/
data/
doc/
lib/
log/
plugins/
test/
web/

Truco La tarea init-project añade un script llamado symfony en el directorio raíz del proyecto. Este script es idéntico al comando symfony que instala PEAR, por lo que se puede utilizar la instrucción php symfony en vez del comando symfony cuando no se dispone de las utilidades de la línea de comandos (lo que sucede cuando se instala Symfony mediante Subversion).

3.3.2. Crear la Aplicación

El proyecto recién creado está incompleto, ya que requiere por lo menos de una aplicación. Para crear la aplicación, se utiliza el comando symfony init-app, al que se le tiene que pasar como argumento el nombre de la nueva aplicación:

> symfony init-app miaplicacion

El comando anterior crea un directorio llamado miaplicacion/ dentro del directorio apps/ que se encuentra en la raíz del proyecto. Por defecto se crea una configuración básica de la aplicación y una serie de directorios:

apps/
  miaplicacion/
    config/
    i18n/
    lib/
    modules/
    templates/

En el directorio web del proyecto también se crean algunos archivos PHP correspondientes a los controladores frontales de cada uno de los entornos de ejecución de la aplicación:

web/
  index.php
  miaplicacion_dev.php

El archivo index.php es el controlador frontal de producción de la nueva aplicación. Como se trata de la primera aplicación, Symfony crea un archivo llamado index.php en vez de miaplicacion.php (si después se crea una nueva aplicación llamada por ejemplo minuevaaplicacion, el controlador frontal del entorno de producción que se crea se llamará minuevaaplicacion.php). Para ejecutar la aplicación en el entorno de desarrollo, se debe ejecutar el controlador frontal llamado miaplicacion_dev.php. El Capítulo 5 explica en detalle los distintos entornos de ejecución.