for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Spatie\HttpLogger\Middlewares;
use Closure;
use Illuminate\Http\Request;
use Spatie\HttpLogger\LogProfile;
use Spatie\HttpLogger\LogResponseProfile;
use Spatie\HttpLogger\LogResponseWriter;
use Spatie\HttpLogger\LogWriter;
use Symfony\Component\HttpFoundation\Response;
class HttpLogger
{
protected $logProfile;
protected $logWriter;
public function __construct(LogProfile $logProfile, LogWriter $logWriter, logResponseProfile $logResponseProfile, logResponseWriter $logResponseWriter)
$this->logProfile = $logProfile;
$this->logWriter = $logWriter;
$this->logResponseProfile = $logResponseProfile;
logResponseProfile
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
$this->logResponseWriter = $logResponseWriter;
logResponseWriter
}
public function handle(Request $request, Closure $next)
if ($this->logProfile->shouldLogRequest($request)) {
$this->logWriter->logRequest($request);
return $next($request);
public function terminate(Request $request, Response $response)
if ($this->logResponseProfile->shouldLogResponse($request, $response)) {
$this->logResponseWriter->logResponse($request, $response);
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: