El objetivo de este capítulo es empezar a trabajar con una aplicación funcionando incorporada en lo alto de Symfony. Afortunadamente, Symfony dispone de «distribuciones», que son proyectos Symfony funcionales desde el «arranque», los cuales puedes descargar y comenzar a desarrollar inmediatamente.
Truco
Si estás buscando instrucciones sobre la mejor manera de crear un nuevo proyecto y guardarlo vía el control de código fuente, consulta Usando control de código fuente.
Truco
En primer lugar, comprueba que tienes instalado y configurado un servidor web (como Apache) con PHP 5.3.8 o superior. Para más información sobre los requisitos de Symfony2, consulta los requisitos en la referencia.
Los paquetes de las «distribuciones» de Symfony2, son aplicaciones totalmente funcionales que incluyen las bibliotecas del núcleo de Symfony2, una selección de útiles paquetes, una sensible estructura de directorios y alguna configuración predeterminada. Al descargar una distribución Symfony2, estás descargando la estructura de una aplicación operativa que puedes utilizar inmediatamente para comenzar a desarrollar tu aplicación.
Empieza por visitar la página de descarga de Symfony2 en http://symfony.com/download. En esta página, puedes encontrar la edición estándar de Symfony, que es la distribución principal de Symfony2. Hay 2 maneras en las que puedes iniciar tu proyecto:
Composer es una biblioteca de administración de dependencias para PHP, la cual puedes utilizar para descargar la Edición estándar de Symfony2.
Comienza descargando Composer en algún lugar de tu ordenador local. Si tienes instalado curl, es tan fácil como:
% curl -s https://getcomposer.org/installer | php
Nota
Si tu ordenador no está listo para utilizar Composer, verás algunas recomendaciones cuándo ejecutes esta orden. Sigue las recomendaciones hasta lograr que Composer trabaje correctamente.
Composer es un archivo PHAR ejecutable, el cual puedes utilizar para descargar la distribución estándar:
php composer.phar create-project symfony/framework-standard-edition /ruta/al/directorio/web-raiz/Symfony 2.2.0
Truco
Para una versión exacta, reemplaza 2.2.0 con la más reciente versión de Symfony (p. ej. 2.2.1). Para detalles, ve la Página de instalación de Symfony
Truco
Para descargar más rápido los archivos de proveedores, añade la opción --prefer-dist al final de cualquier orden de Composer.
Esta orden puede tardar varios minutos en su ejecución puesto que composer descarga la Distribución estándar junto con todas las bibliotecas de proveedores que necesita. Cuando termine, tendrás un directorio parecido a este:
ruta/al/directorio/web-raiz/ <- tu directorio raíz del servidor web
Symfony/ <- el archivo extraído
app/
cache/
config/
logs/
src/
...
vendor/
...
web/
app.php
...
También puedes descargar un archivo de la Edición estándar. En este caso, necesitas hacer dos elecciones:
Descarga uno de los archivos en algún lugar bajo el directorio raíz de tu servidor web local y descomprímelo. Desde una línea de ordenes de UNIX, esto se puede hacer con una de las siguientes ordenes (sustituye ### con el nombre del archivo real):
# para un archivo .tgz
$ tar zxvf Symfony_Standard_Vendors_2.2.###.tgz
# para un archivo .zip
$ unzip Symfony_Standard_Vendors_2.2.###.zip
Si descargaste el archivo «sin vendors», definitivamente necesitarás leer la siguiente sección.
Nota
Fácilmente puedes sustituir la estructura de directorios predefinida. Consulta Cómo sustituir la estructura de directorios predeterminada de Symfony para más información.
Al llegar a este punto, has descargado un proyecto Symfony completamente operativo en el cual puedes comenzar a desarrollar tu propia aplicación. Un proyecto Symfony depende de una serie de bibliotecas externas. Estas se han descargado al directorio vendor/ de tu proyecto vía una biblioteca llamada Composer.
Dependiendo de cómo descargaste Symfony, ahora posiblemente o no necesites actualizar tus proveedores. Pero, actualizar tus proveedores siempre es seguro, y garantiza que tienes todas las bibliotecas de proveedores necesarias.
Paso 1: Consigue Composer (El nuevo gran sistema de empacado PHP)
curl -s http://getcomposer.org/installer | php
Asegúrate de descargar composer.phar en el mismo directorio dónde se encuentra el archivo composer.json (este, por omisión, es el directorio raíz de tu proyecto Symfony).
Paso 2: Instala las bibliotecas de terceros
$ php composer.phar install
Esta orden descarga todas las bibliotecas de terceros necesarias —incluyendo al mismo Symfony— en el directorio vendor/.
Nota
Si no tienes instalado curl, simplemente puedes descargar manualmente el archivo instalador de http://getcomposer.org/installer. Coloca ese archivo en tu proyecto y luego ejecuta:
php installer
php composer.phar install
Truco
Cuando ejecutes php composer.phar install o php composer.phar update, composer ejecutará las ordenes postinstalación/postactualización para limpiar la caché e instalar los activos. De manera predeterminada, los activos se copiarán a tu directorio web.
En vez de copiar tus activos Symfony, puedes crear enlaces simbólicos si tu sistema operativo los apoya. Para crear enlaces simbólicos, añade una entrada en el nodo extra de tu archivo composer.json` con la clave symfony-assets-install y el valor symlink:
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
"symfony-assets-install": "symlink"
}
Al suministrar relative en lugar de symlink a symfony-assets-install, la orden generará enlaces simbólicos relativos.
En este punto, todas las bibliotecas de terceros necesarias ahora viven en el directorio vendor/. También tienes una instalación predeterminada de la aplicación en app/ y algunos ejemplos de código dentro de src/.
Symfony2 viene con una interfaz visual para probar la configuración del servidor, muy útil para ayudarte a solucionar problemas relacionados con la configuración de tu servidor web y PHP para utilizar Symfony. Usa la siguiente URL para examinar tu configuración:
http://localhost/config.php
Si hay algún problema, corrígelo antes de continuar.
Cuando todo esté listo, haz clic en el enlace «Visita la página de Bienvenida» para ver tu primer aplicación «real» en Symfony2:
http://localhost/app_dev.php/
¡Symfony2 debería darte la bienvenida y felicitarte por tu arduo trabajo hasta el momento!
Truco
Para conseguir bonitas y breves URL deberías apuntar el documento raíz de tu servidor web o servidor virtual al directorio Symfony/web/. Aunque esto no es necesario para el desarrollo, es recomendable al momento de desplegar tu aplicación en producción cuando todo el sistema y archivos de configuración se vuelven inaccesibles a los clientes. Para información sobre cómo configurar el directorio raíz de tu servidor web, lee Configuring a web server o consulta la documentación oficial de tu servidor web: Apache | Nginx .
Ahora que tienes una aplicación Symfony2 completamente operativa, ¡puedes empezar a desarrollarla! Tu distribución puede contener algún código de ejemplo — revisa el archivo README.md incluido con la distribución (abrelo como archivo de texto) para ver qué código de ejemplo incluye tu distribución.
Si es tu primer contacto con Symfony, alcánzanos en «Creando páginas en Symfony2», donde aprenderás a crear páginas, cambiar la configuración, y todo lo que necesitarás en tu nueva aplicación.
Además, asegúrate de revisar el Recetario, el cual contiene una amplia variedad de artículos que solucionan problemas específicos con Symfony.
Nota
Si quieres eliminar el código de ejemplo de tu distribución, dale un vistazo a este artículo en el recetario: «Cómo eliminar el AcmeDemoBundle»
Si estás utilizando un sistema de control de versiones como Git o Subversion, puedes configurar tu sistema de control de versiones y empezar a confirmar cambios al proyecto normalmente. La edición estándar de Symfony es el punto de partida para tu nuevo proyecto.
Para instrucciones específicas sobre la mejor manera de configurar el proyecto para almacenarlo en git, consulta Cómo crear y guardar un proyecto Symfony2 en git.
Si has descargado el archivo sin proveedores, puedes omitir todo el directorio vendor/ y no confirmarlo al control de versiones. Con Git, esto se logra creando un archivo .gitignore y añadiendo lo siguiente:
/vendor/
Ahora, el directorio de proveedores no será confirmado al control de versiones. Esto está muy bien (en realidad, ¡es genial!) porque cuando alguien más clone o coteje el proyecto, él/ella simplemente puede ejecutar el archivo php composer.phar install para descargar todas las bibliotecas de proveedores necesarias.