Spaces:
No application file
No application file
| namespace Mautic\StatsBundle\Event; | |
| use Mautic\StatsBundle\Aggregate\Collection\StatCollection; | |
| use Mautic\StatsBundle\Event\Options\FetchOptions; | |
| use Symfony\Contracts\EventDispatcher\Event; | |
| class AggregateStatRequestEvent extends Event | |
| { | |
| private StatCollection $statCollection; | |
| /** | |
| * @param string $statName | |
| */ | |
| public function __construct( | |
| private $statName, | |
| private \DateTimeInterface $fromDateTime, | |
| private \DateTimeInterface $toDateTime, | |
| private FetchOptions $options | |
| ) { | |
| $this->statCollection = new StatCollection(); | |
| } | |
| /** | |
| * Note if the listener handled collecting these stats. | |
| */ | |
| public function statsCollected(): void | |
| { | |
| $this->stopPropagation(); | |
| } | |
| /** | |
| * @return string | |
| */ | |
| public function getStatName() | |
| { | |
| return $this->statName; | |
| } | |
| /** | |
| * @return \DateTimeInterface | |
| */ | |
| public function getFromDateTime() | |
| { | |
| return $this->fromDateTime; | |
| } | |
| /** | |
| * @return \DateTimeInterface | |
| */ | |
| public function getToDateTime() | |
| { | |
| return $this->toDateTime; | |
| } | |
| /** | |
| * @return FetchOptions | |
| */ | |
| public function getOptions() | |
| { | |
| return $this->options; | |
| } | |
| /** | |
| * @return StatCollection | |
| */ | |
| public function getStatCollection() | |
| { | |
| return $this->statCollection; | |
| } | |
| /** | |
| * @param string $context | |
| */ | |
| public function checkContext($context): bool | |
| { | |
| return $this->statName === $context; | |
| } | |
| public function checkContexts(array $contexts): bool | |
| { | |
| return in_array($this->statName, $contexts, true); | |
| } | |
| /** | |
| * @param string $prefix | |
| */ | |
| public function checkContextPrefix($prefix): bool | |
| { | |
| return str_starts_with($this->statName, $prefix); | |
| } | |
| public function checkContextPrefixes(array $prefixes): bool | |
| { | |
| foreach ($prefixes as $string) { | |
| if (str_starts_with($this->statName, $string)) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| } | |
| } | |