����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/./././www/vendor/sentry/sentry/src/Context/ |
Upload File : |
<?php
declare(strict_types=1);
namespace Sentry\Context;
/**
* This class stores generic information that will be attached to an event
* being sent.
*
* @author Stefano Arlandini <sarlandini@alice.it>
*
* @psalm-template T
*
* @template-implements \ArrayAccess<string, T>
* @template-implements \IteratorAggregate<string, T>
*/
class Context implements \ArrayAccess, \JsonSerializable, \IteratorAggregate
{
/**
* This constant defines the alias used for the user context.
*
* @deprecated To be removed in 3.0 because unused
*/
public const CONTEXT_USER = 'user';
/**
* This constant defines the alias used for the runtime context.
*
* @deprecated To be removed in 3.0 because unused
*/
public const CONTEXT_RUNTIME = 'runtime';
/**
* This constant defines the alias used for the tags context.
*
* @deprecated To be removed in 3.0 because unused
*/
public const CONTEXT_TAGS = 'tags';
/**
* This constant defines the alias used for the extra context.
*
* @deprecated To be removed in 3.0 because unused
*/
public const CONTEXT_EXTRA = 'extra';
/**
* This constant defines the alias used for the server OS context.
*
* @deprecated To be removed in 3.0 because unused
*/
public const CONTEXT_SERVER_OS = 'server_os';
/**
* @var array The data stored in this object
*
* @psalm-var array<string, T>
*/
protected $data = [];
/**
* Constructor.
*
* @param array $data The initial data to store
*
* @psalm-param array<string, T> $data
*/
public function __construct(array $data = [])
{
$this->data = $data;
}
/**
* Merges the given data with the existing one, recursively or not, according
* to the value of the `$recursive` parameter.
*
* @param array $data The data to merge
* @param bool $recursive Whether to merge the data recursively or not
*
* @psalm-param array<string, T> $data
*/
public function merge(array $data, bool $recursive = false): void
{
$this->data = $recursive ? array_merge_recursive($this->data, $data) : array_merge($this->data, $data);
}
/**
* Sets each element of the array to the value of the corresponding key in
* the given input data.
*
* @param array $data The data to set
*
* @psalm-param array<string, T> $data
*/
public function setData(array $data): void
{
foreach ($data as $index => $value) {
$this->data[$index] = $value;
}
}
/**
* Replaces all the data contained in this object with the given one.
*
* @param array $data The data to set
*
* @psalm-param array<string, T> $data
*/
public function replaceData(array $data): void
{
$this->data = $data;
}
/**
* Clears the entire data contained in this object.
*/
public function clear(): void
{
$this->data = [];
}
/**
* Checks whether the object is not storing any data.
*/
public function isEmpty(): bool
{
return empty($this->data);
}
/**
* Returns an array representation of the data stored by the object.
*
* @psalm-return array<string, T>
*/
public function toArray(): array
{
return $this->data;
}
/**
* {@inheritdoc}
*/
public function offsetExists($offset): bool
{
return isset($this->data[$offset]) || \array_key_exists($offset, $this->data);
}
/**
* {@inheritdoc}
*/
public function offsetGet($offset)
{
return $this->data[$offset];
}
/**
* {@inheritdoc}
*/
public function offsetSet($offset, $value): void
{
$this->data[$offset] = $value;
}
/**
* {@inheritdoc}
*/
public function offsetUnset($offset): void
{
unset($this->data[$offset]);
}
/**
* {@inheritdoc}
*
* @psalm-return array<string, T>
*/
public function jsonSerialize(): array
{
return $this->toArray();
}
/**
* {@inheritdoc}
*/
public function getIterator(): \Traversable
{
return new \ArrayIterator($this->data);
}
}