In your file public/index.phpadd a constant:
<?php
define('LUMEN_START', microtime(true));
$app = require __DIR__.'/../bootstrap/app.php';
$app->run();
- , . app/Http/Middleware MeasureExecutionTime.php.
<?php
namespace App\Http\Middleware;
use Closure;
class MeasureExecutionTime
{
public function handle($request, Closure $next)
{
$response = $next($request);
$executionTime = microtime() - LUMEN_START;
$content = json_decode($response->getContent(), true) + [
'execution_time' => $executionTime,
];
$response->setContent($content);
return $response;
}
}
, :
$app->middleware([
App\Http\Middleware\MeasureExecutionTime::class
]);
bootstrap/app.php. :
<?php
require_once __DIR__.'/../vendor/autoload.php';
try {
(new Dotenv\Dotenv(__DIR__.'/../'))->load();
} catch (Dotenv\Exception\InvalidPathException $e) {
}
$app = new Laravel\Lumen\Application(
realpath(__DIR__.'/../')
);
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class
);
$app->singleton(
Illuminate\Contracts\Console\Kernel::class,
App\Console\Kernel::class
);
$app->middleware([
App\Http\Middleware\MeasureExecutionTime::class
]);
$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
require __DIR__.'/../app/Http/routes.php';
});
return $app;
. , MeasureExecutionTime END .
:
UPDATE
, :
<?php
namespace App\Http\Middleware;
use Closure;
class MeasureExecutionTime
{
public function handle($request, Closure $next)
{
$response = $next($request);
$response->headers->set('X-Elapsed-Time', microtime(true) - LUMEN_START);
return $response;
}
}