vendor and env first commit

This commit is contained in:
2025-03-28 08:52:46 +01:00
parent f8388bc81b
commit 8f26283832
10976 changed files with 1349952 additions and 2 deletions
@@ -0,0 +1,108 @@
<?php
namespace Barryvdh\Debugbar\Support\Clockwork;
use DebugBar\DataCollector\DataCollector;
use DebugBar\DataCollector\DataCollectorInterface;
use DebugBar\DataCollector\Renderable;
use Illuminate\Support\Arr;
use Symfony\Component\HttpFoundation\Response;
/**
*
* Based on \Symfony\Component\HttpKernel\DataCollector\RequestDataCollector by Fabien Potencier <fabien@symfony.com>
*
*/
class ClockworkCollector extends DataCollector implements DataCollectorInterface, Renderable
{
/** @var \Symfony\Component\HttpFoundation\Request $request */
protected $request;
/** @var \Symfony\Component\HttpFoundation\Request $response */
protected $response;
/** @var \Symfony\Component\HttpFoundation\Session\SessionInterface $session */
protected $session;
/** @var array */
protected $hiddens;
/**
* Create a new SymfonyRequestCollector
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \Symfony\Component\HttpFoundation\Request $response
* @param \Symfony\Component\HttpFoundation\Session\SessionInterface $session
* @param array $hiddens
*/
public function __construct($request, $response, $session = null, $hiddens = [])
{
$this->request = $request;
$this->response = $response;
$this->session = $session;
$this->hiddens = array_merge($hiddens, [
'request_request.password',
'request_request.PHP_AUTH_PW',
'request_request.php-auth-pw',
'request_headers.php-auth-pw.0',
]);
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'clockwork';
}
/**
* {@inheritDoc}
*/
public function getWidgets()
{
return null;
}
/**
* {@inheritdoc}
*/
public function collect()
{
$request = $this->request;
$response = $this->response;
$data = [
'getData' => $request->query->all(),
'postData' => $request->request->all(),
'headers' => $request->headers->all(),
'cookies' => $request->cookies->all(),
'uri' => $request->getRequestUri(),
'method' => $request->getMethod(),
'responseStatus' => $response->getStatusCode(),
];
if ($this->session) {
$data['sessionData'] = $this->session->all();
}
if (isset($data['headers']['authorization'][0])) {
$data['headers']['authorization'][0] = substr($data['headers']['authorization'][0], 0, 12) . '******';
}
$keyAlias = [
'request_query' => 'getData',
'request_request' => 'postData',
'request_headers' => 'headers',
'request_cookies' => 'cookies',
'session_attributes' => 'sessionData',
];
foreach ($this->hiddens as $key) {
$key = explode('.', $key);
$key[0] = $keyAlias[$key[0]] ?? $key[0];
$key = implode('.', $key);
if (Arr::has($data, $key)) {
Arr::set($data, $key, '******');
}
}
return $data;
}
}
@@ -0,0 +1,169 @@
<?php
namespace Barryvdh\Debugbar\Support\Clockwork;
class Converter
{
/**
* Convert the phpdebugbar data to Clockwork format.
*
* @param array $data
* @return array
*/
public function convert($data)
{
$meta = $data['__meta'];
// Default output
$output = [
'id' => $meta['id'],
'method' => $meta['method'],
'uri' => $meta['uri'],
'time' => $meta['utime'],
'headers' => [],
'cookies' => [],
'emailsData' => [],
'getData' => [],
'log' => [],
'postData' => [],
'sessionData' => [],
'timelineData' => [],
'viewsData' => [],
'controller' => null,
'responseTime' => null,
'responseStatus' => null,
'responseDuration' => 0,
];
if (isset($data['clockwork'])) {
$output = array_merge($output, $data['clockwork']);
}
if (isset($data['memory'])) {
$output['memoryUsage'] = $data['memory']['peak_usage'];
}
if (isset($data['time'])) {
$time = $data['time'];
$output['time'] = $time['start'];
$output['responseTime'] = $time['end'];
$output['responseDuration'] = $time['duration'] * 1000;
foreach ($time['measures'] as $measure) {
$output['timelineData'][] = [
'data' => [],
'description' => $measure['label'],
'duration' => $measure['duration'] * 1000,
'end' => $measure['end'],
'start' => $measure['start'],
'relative_start' => $measure['start'] - $time['start'],
];
}
}
if (isset($data['route'])) {
$route = $data['route'];
$controller = null;
if (isset($route['controller'])) {
$controller = $route['controller'];
} elseif (isset($route['uses'])) {
$controller = $route['uses'];
}
$output['controller'] = $controller;
list($method, $uri) = explode(' ', $route['uri'], 2);
$output['routes'][] = [
'action' => $controller,
'after' => isset($route['after']) ? $route['after'] : null,
'before' => isset($route['before']) ? $route['before'] : null,
'method' => $method,
'name' => isset($route['as']) ? $route['as'] : null,
'uri' => $uri,
];
}
if (isset($data['messages'])) {
foreach ($data['messages']['messages'] as $message) {
$output['log'][] = [
'message' => $message['message'],
'time' => $message['time'],
'level' => $message['label'],
];
}
}
if (isset($data['queries'])) {
$queries = $data['queries'];
foreach ($queries['statements'] as $statement) {
if ($statement['type'] === 'explain') {
continue;
}
$output['databaseQueries'][] = [
'query' => $statement['sql'],
'bindings' => $statement['params'],
'duration' => $statement['duration'] * 1000,
'time' => $statement['start'] ?? null,
'connection' => $statement['connection']
];
}
$output['databaseDuration'] = $queries['accumulated_duration'] * 1000;
}
if (isset($data['models'])) {
$output['modelsActions'] = [];
$output['modelsCreated'] = [];
$output['modelsUpdated'] = [];
$output['modelsDeleted'] = [];
$output['modelsRetrieved'] = $data['models']['data'];
}
if (isset($data['views'])) {
foreach ($data['views']['templates'] as $view) {
$output['viewsData'][] = [
'description' => 'Rendering a view',
'duration' => 0,
'end' => 0,
'start' => $view['start'] ?? 0,
'data' => [
'name' => $view['name'],
'data' => $view['params'],
],
];
}
}
if (isset($data['event'])) {
foreach ($data['event']['measures'] as $event) {
$event['data'] = [];
$event['listeners'] = [];
foreach ($event['params'] ?? [] as $key => $param) {
$event[is_numeric($key) ? 'data' : 'listeners'] = $param;
}
$output['events'][] = [
'event' => ['event' => $event['label']],
'data' => $event['data'],
'time' => $event['start'],
'duration' => $event['duration'] * 1000,
'listeners' => $event['listeners'],
];
}
}
if (isset($data['symfonymailer_mails'])) {
foreach ($data['symfonymailer_mails']['mails'] as $mail) {
$output['emailsData'][] = [
'data' => [
'to' => implode(', ', $mail['to']),
'subject' => $mail['subject'],
'headers' => isset($mail['headers']) ? explode("\n", $mail['headers']) : null,
],
];
}
}
return $output;
}
}