Pony.fm/app/ProfileRequest.php
2015-08-31 13:35:47 +01:00

75 lines
No EOL
1.4 KiB
PHP

<?php
namespace App;
use Illuminate\Support\Facades\DB;
class ProfileRequest
{
private $_id = null;
private $_data = null;
public static function load($data)
{
$req = new ProfileRequest();
$req->_data = json_decode($data);
return $req;
}
public static function create()
{
$req = new ProfileRequest();
$req->_id = uniqid();
return $req;
}
private function __construct()
{
$this->_data = ['log' => []];
}
public function toArray()
{
return $this->_data;
}
public function toString()
{
return json_encode($this->_data);
}
public function getId()
{
return $this->_id;
}
public function after($request, $response)
{
$this->_data['queries'] = [];
foreach (DB::getQueryLog() as $query) {
if (starts_with($query['query'], 'select * from `cache` where')) {
continue;
}
if (starts_with($query['query'], 'delete from `cache` where')) {
continue;
}
if (starts_with($query['query'], 'insert into `cache`')) {
continue;
}
$this->_data['queries'][] = $query;
}
}
public function log($level, $message, $context)
{
$this->_data['log'][] = [
'level' => $level,
'message' => $message
];
}
}