Estoy siguiendo la página How to Override any Part of a Bundle en el sitio web de Symfony 2. Esto es interesante:¿Extiende el servicio de solicitud de Symfony 2?
puede establecer el parámetro de la celebración de nombre de la clase del servicio a su propia clase estableciéndola en app/config/config.yml. Por supuesto, esto es solo posible si el nombre de la clase se define como un parámetro en la configuración del servicio del paquete que contiene el servicio.
Así que miré a /vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config
y me encontré con que session.xml
es la definición %session.class%
parámetro, por lo que debe ser fácil de extender Symfony Session
clase con algo como:
namespace Acme\HelloBundle\Component\HttpFoundation;
use Symfony\Component\HttpFoundation\Session;
class ExtendedSession extends Session
{
public function setSuccessFlashText($text, array params = array())
{
parent::setFlash('success', $this->getTranslator()->trans($text, $params);
}
}
Me di no probado esto todavía. ¿Pero cómo puedo hacer lo mismo con el servicio especial request
? Me gustaría agregar algunos accesos directos convenientes para hacer que mi código sea más fácil de leer.
He encontrado esto en services.xml
archivo:
<!--
If you want to change the Request class, modify the code in
your front controller (app.php) so that it passes an instance of
YourRequestClass to the Kernel.
This service definition only defines the scope of the request.
It is used to check references scope.
-->
<service id="request" scope="request" synthetic="true" />
Aquí es mi app.php
. ¿Cómo se supone que debo pasar una instancia de mi clase de solicitud personalizada?
require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';
use Symfony\Component\HttpFoundation\Request;
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);
$kernel->handle(Request::createFromGlobals())->send();
'web/app.php' - no lo hace ¿tener tal? O_o –
@thecatontheflat lol: D Estaba mirando la carpeta '/ app' ... voy a actualizar la pregunta entonces. – gremo