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.