-
-
Notifications
You must be signed in to change notification settings - Fork 333
Expand file tree
/
Copy pathXdebugDataSource.php
More file actions
31 lines (24 loc) · 800 Bytes
/
Copy pathXdebugDataSource.php
File metadata and controls
31 lines (24 loc) · 800 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php namespace Clockwork\DataSource;
use Clockwork\Request\Request;
// Data source for Xdebug, provides profiling data
class XdebugDataSource extends DataSource
{
// Adds profiling data path to the request
public function resolve(Request $request)
{
$request->xdebug = [ 'profile' => xdebug_get_profiler_filename() ];
return $request;
}
// Extends the request with full profiling data
public function extend(Request $request)
{
$profile = $request->xdebug['profile'] ?? null;
if ($profile && ! preg_match('/\.php$/', $profile) && is_readable($profile)) {
$request->xdebug['profileData'] = file_get_contents($profile);
if (preg_match('/\.gz$/', $profile)) {
$request->xdebug['profileData'] = gzdecode($request->xdebug['profileData']);
}
}
return $request;
}
}