<?php
namespace App\Features\HttpLogger;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Contracts\HttpLogger as HttpLoggerContract;
class DatabaseLogger implements HttpLoggerContract
{
/**
* Write log
*/
public function write(Request $request, $response)
{
if (! $request->method("POST")) {
return
}
DB::table('http_log_requests')->insert([
// Do someting...
]);
}
}
<?php
namespace App\Features\HttpLogger;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Contracts\HttpLogger as HttpLoggerContract;
class WriteOnlyPostMethodHttpLoggerDecorator implements HttpLoggerContract
{
protected $logger;
public function __construct(HttpLogger $logger)
{
$this->logger = $logger;
}
public function write(Request $request, $response)
{
if ($this->shouldLog($request, $response)) {
$this->logger->write($request, $response);
}
}
protected function shouldLog(Request $request, $response)
{
return $request->method('post');
}
}