REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 7.26 KB
Close
/opt/cloudlinux/alt-php53/root/usr/share/pear/Symfony/Component/HttpKernel/Profiler/Profiler.php
Text
Base64
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpKernel\Profiler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface; use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface; use Psr\Log\LoggerInterface; /** * Profiler. * * @author Fabien Potencier <fabien@symfony.com> */ class Profiler { /** * @var ProfilerStorageInterface */ private $storage; /** * @var DataCollectorInterface[] */ private $collectors = array(); /** * @var LoggerInterface */ private $logger; /** * @var Boolean */ private $enabled = true; /** * Constructor. * * @param ProfilerStorageInterface $storage A ProfilerStorageInterface instance * @param LoggerInterface $logger A LoggerInterface instance */ public function __construct(ProfilerStorageInterface $storage, LoggerInterface $logger = null) { $this->storage = $storage; $this->logger = $logger; } /** * Disables the profiler. */ public function disable() { $this->enabled = false; } /** * Enables the profiler. */ public function enable() { $this->enabled = true; } /** * Loads the Profile for the given Response. * * @param Response $response A Response instance * * @return Profile A Profile instance */ public function loadProfileFromResponse(Response $response) { if (!$token = $response->headers->get('X-Debug-Token')) { return false; } return $this->loadProfile($token); } /** * Loads the Profile for the given token. * * @param string $token A token * * @return Profile A Profile instance */ public function loadProfile($token) { return $this->storage->read($token); } /** * Saves a Profile. * * @param Profile $profile A Profile instance * * @return Boolean */ public function saveProfile(Profile $profile) { // late collect foreach ($profile->getCollectors() as $collector) { if ($collector instanceof LateDataCollectorInterface) { $collector->lateCollect(); } } if (!($ret = $this->storage->write($profile)) && null !== $this->logger) { $this->logger->warning('Unable to store the profiler information.'); } return $ret; } /** * Purges all data from the storage. */ public function purge() { $this->storage->purge(); } /** * Exports the current profiler data. * * @param Profile $profile A Profile instance * * @return string The exported data */ public function export(Profile $profile) { return base64_encode(serialize($profile)); } /** * Imports data into the profiler storage. * * @param string $data A data string as exported by the export() method * * @return Profile A Profile instance */ public function import($data) { $profile = unserialize(base64_decode($data)); if ($this->storage->read($profile->getToken())) { return false; } $this->saveProfile($profile); return $profile; } /** * Finds profiler tokens for the given criteria. * * @param string $ip The IP * @param string $url The URL * @param string $limit The maximum number of tokens to return * @param string $method The request method * @param string $start The start date to search from * @param string $end The end date to search to * * @return array An array of tokens * * @see http://fr2.php.net/manual/en/datetime.formats.php for the supported date/time formats */ public function find($ip, $url, $limit, $method, $start, $end) { if ('' != $start && null !== $start) { $start = new \DateTime($start); $start = $start->getTimestamp(); } else { $start = null; } if ('' != $end && null !== $end) { $end = new \DateTime($end); $end = $end->getTimestamp(); } else { $end = null; } return $this->storage->find($ip, $url, $limit, $method, $start, $end); } /** * Collects data for the given Response. * * @param Request $request A Request instance * @param Response $response A Response instance * @param \Exception $exception An exception instance if the request threw one * * @return Profile|null A Profile instance or null if the profiler is disabled */ public function collect(Request $request, Response $response, \Exception $exception = null) { if (false === $this->enabled) { return; } $profile = new Profile(substr(hash('sha256', uniqid(mt_rand(), true)), 0, 6)); $profile->setTime(time()); $profile->setUrl($request->getUri()); $profile->setIp($request->getClientIp()); $profile->setMethod($request->getMethod()); $response->headers->set('X-Debug-Token', $profile->getToken()); foreach ($this->collectors as $collector) { $collector->collect($request, $response, $exception); // we need to clone for sub-requests $profile->addCollector(clone $collector); } return $profile; } /** * Gets the Collectors associated with this profiler. * * @return array An array of collectors */ public function all() { return $this->collectors; } /** * Sets the Collectors associated with this profiler. * * @param DataCollectorInterface[] $collectors An array of collectors */ public function set(array $collectors = array()) { $this->collectors = array(); foreach ($collectors as $collector) { $this->add($collector); } } /** * Adds a Collector. * * @param DataCollectorInterface $collector A DataCollectorInterface instance */ public function add(DataCollectorInterface $collector) { $this->collectors[$collector->getName()] = $collector; } /** * Returns true if a Collector for the given name exists. * * @param string $name A collector name * * @return Boolean */ public function has($name) { return isset($this->collectors[$name]); } /** * Gets a Collector by name. * * @param string $name A collector name * * @return DataCollectorInterface A DataCollectorInterface instance * * @throws \InvalidArgumentException if the collector does not exist */ public function get($name) { if (!isset($this->collectors[$name])) { throw new \InvalidArgumentException(sprintf('Collector "%s" does not exist.', $name)); } return $this->collectors[$name]; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 12
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
BaseMemcacheProfilerStorage.php
7.50 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
FileProfilerStorage.php
7.42 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
MemcachedProfilerStorage.php
2.41 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
MemcacheProfilerStorage.php
2.55 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
MongoDbProfilerStorage.php
6.86 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
MysqlProfilerStorage.php
2.34 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
PdoProfilerStorage.php
7.65 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Profile.php
5.18 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Profiler.php
7.26 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ProfilerStorageInterface.php
1.48 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
RedisProfilerStorage.php
9.94 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SqliteProfilerStorage.php
4.74 KB
lrw-r--r--
2019-12-18 11:20:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).