2 votes

Où se trouve l'implémentation de '$app->run()' dans Lumen ?

Je n'arrive pas à trouver où l'implémentation de run() qui est utilisée sur Lumen est définie. Celle que l'on peut voir dans le fichier d'amorçage :

$app->run();

Où cette méthode est-elle définie ?

2voto

yivi Points 3635

Il est défini sur Laravel\Lumen\Concerns\RoutesRequests .

Si vous jetez un coup d'œil à bootstrap/app.php vous verrez ceci :

$app = new Laravel\Lumen\Application(
    dirname(__DIR__)
);

Donc nous savons que $app est une instance de Laravel\Lumen\Application .

La méthode run() n'est pas défini sur cette classe, mais si vous regardez de près, vous verrez ceci :

class Application extends Container
{
    use Concerns\RoutesRequests,
        Concerns\RegistersExceptionHandlers;

Ces Les traits définissent un comportement supplémentaire pour la classe . Plus précisément, le Laravel\Lumen\Concerns\RoutesRequests vous trouverez :

/**
 * Run the application and send the response.
 *
 * @param  SymfonyRequest|null  $request
 * @return void
 */
public function run($request = null)
{
    $response = $this->dispatch($request);

    if ($response instanceof SymfonyResponse) {
        $response->send();
    } else {
        echo (string) $response;
    }

    if (count($this->middleware) > 0) {
        $this->callTerminableMiddleware($response);
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X