Lo primero que tenemos que hacer es crear la aplicación backend
. Si no te falla la memoria, te acordarás de que las aplicaciones de Symfony se crean con la tarea generate:app
:
$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret1 backend
Aunque la aplicación backend
sólo la van a utilizar los administradores de Jobeet, hemos activado todas las medidas de seguridad que incluye Symfony.
Nota Si quieres utilizar caracteres especiales en la contraseña de la opción --csrf-secret
, como por ejemplo un signo de dólar ($
), tienes que escapar cada carácter especial en la línea de comandos mediante la barra \
:
$ php symfony generate:app --csrf-secret=Unique\$ecret backend
Después de ejecutar la tarea, ya puedes acceder a la nueva aplicación en http://jobeet.localhost/backend.php/ para el entorno de producción y en http://jobeet.localhost/backend_dev.php/ para el entorno de desarrollo.
Nota Cuando creamos la aplicación frontend
, el controlador frontal de producción se llamaba index.php
. Como sólo se puede tener un archivo index.php
en cada directorio, Symfony crea un archivo llamado index.php
para el controlador frontal de la primera aplicación y el resto de controladores frontales se llaman igual que el resto de aplicaciones.
Si ahora intentas volver a cargar los archivos de datos con la tara propel:data-load
, verás que ya no funciona. El motivo es que el método JobeetJob::save()
debe tener acceso al archivo de configuración app.yml
de la aplicación frontend
. Como ahora tenemos dos aplicaciones, Symfony utiliza el primer archivo app.yml
que encuentra, que en este caso es el de la aplicación backend
.
No obstante, como vimos durante el tutorial del día 8, las opciones de configuración se establecen en diferentes niveles. Si copias el contenido del archivo apps/frontend/config/app.yml
al archivo config/app.yml
, las opciones de configuración están disponibles en todas las aplicaciones del proyecto y por tanto, se corrige el error anterior. Realiza el cambio ahora porque el generador de la parte de administración utiliza mucho las clases del modelo y por tanto, también vamos a necesitar en la aplicación backend
las variables definidas en el archivo app.yml
.
Nota La tarea propel:data-load
también permite el uso de la opción --application
. De esta forma, si necesitas acceder a las opciones específicas de una aplicación, debes ejecutar la tarea con esta opción:
$ php symfony propel:data-load --application=frontend