public function RedisProfilerStorage::write

Saves a Profile.

Parameters

Profile $profile A Profile instance:

Return value

Boolean Write operation successful

Overrides ProfilerStorageInterface::write

File

drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php, line 157

Class

RedisProfilerStorage
RedisProfilerStorage stores profiling information in Redis.

Namespace

Symfony\Component\HttpKernel\Profiler

Code

public function write(Profile $profile) {
  $data = array(
    'token' => $profile
      ->getToken(),
    'parent' => $profile
      ->getParentToken(),
    'children' => array_map(function ($p) {
      return $p
        ->getToken();
    }, $profile
      ->getChildren()),
    'data' => $profile
      ->getCollectors(),
    'ip' => $profile
      ->getIp(),
    'method' => $profile
      ->getMethod(),
    'url' => $profile
      ->getUrl(),
    'time' => $profile
      ->getTime(),
  );
  $profileIndexed = false !== $this
    ->getValue($this
    ->getItemName($profile
    ->getToken()));
  if ($this
    ->setValue($this
    ->getItemName($profile
    ->getToken()), $data, $this->lifetime, self::REDIS_SERIALIZER_PHP)) {
    if (!$profileIndexed) {

      // Add to index
      $indexName = $this
        ->getIndexName();
      $indexRow = implode("\t", array(
        $profile
          ->getToken(),
        $profile
          ->getIp(),
        $profile
          ->getMethod(),
        $profile
          ->getUrl(),
        $profile
          ->getTime(),
        $profile
          ->getParentToken(),
      )) . "\n";
      return $this
        ->appendValue($indexName, $indexRow, $this->lifetime);
    }
    return true;
  }
  return false;
}