Qual è il modo migliore per ottenere la ‘Richiesta’ oggetto del controller?

Ho visto la richiesta in oggetto viene passato al metodo di azione del controller come parametro di simile a questo:

public function addAddressAction(Request $request)
{
    ...
}

Ho anche visto all’interno di un metodo di azione in cui si è ottenuto dal contenitore:

public function addAddressAction()
{
    $request  = $this->getRequest();
    ...
}

Qual è il migliore? Importa?

InformationsquelleAutor MikeGA | 2014-01-08



2 Replies
  1. 43

    Se si prende uno sguardo più profondo a Symfony2 Controller di Base codice, si può notare che getRequest() è contrassegnato come deprecato dalla versione 2.4 e saranno rimossi in 3.0.

    /*
     * ...
     * @deprecated Deprecated since version 2.4, to be removed in 3.0. Ask
     *             Symfony to inject the Request object into your controller
     *             method instead by type hinting it in the method's signature.
     */
    public function getRequest()
    {
        return $this->container->get('request_stack')->getCurrentRequest();
    }

    Introdotto dal seguente evoluzione,

    E, ecco il aggiornamento da 2.x 3.0 documentazione.

    Conclusione,

    La Richiesta deve quindi essere parte della vostra azione di firma.

    • Vi ringrazio per la vostra risposta eccellente, anzi sempre la richiesta del contenitore è contrassegnato come obsoleto.
  2. 12

    Per quanto ne so non c’è alcuna differenza. Non interrompere il incidono molto in entrambi i modi. Anche se si desidera specificare i parametri necessari nella vostra azione. E. g.

    /**
     * @Route("/edit/{id}", name="edit")
     */
    public function editAction(Request $request, $id)
    {
        //Both $request and $id are available
    }
    • Vi ringrazio molto.

Lascia un commento