Bootstrap para usar los componentes de symfony en apps ya creadas.
Componentes agregados:
Se maneja mediante un controlador frontal web/app_dev.php, permite definir las rutas en archivos yml, ejemplo:
# _app/config/routes/routing.yml
home:
path: /
defaults:
_file: home.phpEl controlador frontal funciona de la siguiente manera:
<?php # web/app_dev.php
use Symfony\Component\HttpFoundation\Request;
require __DIR__ . '/../vendor/autoload.php';
$request = Request::createFromGlobals();
$app = new App('dev', true);
$app->run($request);El valor de _file es la ruta a un archivo php, escrita desde la raiz del proyecto, ejemplos:
_file: home.php
_file: pages/user/info.php
_file: pages/user_info.php
_file: admin/home.phpPara cambiar el dir desde donde se buscan los archivos controladores se hace en _app/config/config.yml:
# _app/config/config.yml
application:
# controller_dir: %root_dir%
controller_dir: %root_dir%/controllers/
# tambien puede ser
controller_dir: %root_dir%/../pages/Manejando variables globales
Muy posiblemente hagamos uso de variables globales en nuestras app, para poder seguirlas usando debemos indicar sus nombres en el _app/config/config.yml:
# _app/config/config.yml
application:
globals:
# Aca definimos las variables globales que queremos tener disponibles en los controladores.
- request
- sessionManager
- security
- pagesManager
- ...Para usarlo, lo hacemos mediante la clase App:
<?php # algun/controlador.php
# Para obtener o imprimir templates como strings:
echo App::get("twig")->render("home.twig", array('name' => 'Manuel'));
echo App::get("twig")->render("home.twig");
# Para devolver una respuesta desde el archivo controlador:
return App::render("home.twig", array('name' => 'Manuel'));
return App::render("home.twig");Se hace uso del componente de inyeccion de dependencias de symfony, las mimas se registran en _app/config/services/*, y se acceden desde la clase App:
<?php # algun/controlador.php
echo App::get("twig")->render("home.twig");
App::get("router");
App::get("session");
App::get("event_dispatcher");
App::get("service_container");
<?php # algun/controlador.php
echo App::getParameter("debug");
echo App::getParameter("environment");
echo App::getParameter("root_dir");