vendor/gos/web-socket-bundle/src/Pusher/DataCollectingPusherDecorator.php line 8

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Gos\Bundle\WebSocketBundle\Pusher;
  3. use Gos\Bundle\WebSocketBundle\DataCollector\WebsocketDataCollector;
  4. use Symfony\Component\Stopwatch\Stopwatch;
  5. trigger_deprecation('gos/web-socket-bundle''3.1''The "%s" class is deprecated and will be removed in 4.0, use the symfony/messenger component instead.'DataCollectingPusherDecorator::class);
  6. /**
  7.  * @deprecated to be removed in 4.0, use the symfony/messenger component instead
  8.  */
  9. final class DataCollectingPusherDecorator implements PusherInterface
  10. {
  11.     private PusherInterface $pusher;
  12.     private Stopwatch $stopwatch;
  13.     private WebsocketDataCollector $dataCollector;
  14.     public function __construct(PusherInterface $pusherStopwatch $stopwatchWebsocketDataCollector $dataCollector)
  15.     {
  16.         $this->pusher $pusher;
  17.         $this->stopwatch $stopwatch;
  18.         $this->dataCollector $dataCollector;
  19.     }
  20.     /**
  21.      * @param string|array $data
  22.      */
  23.     public function push($datastring $routeName, array $routeParameters = [], array $context = []): void
  24.     {
  25.         $eventName 'push.'.$this->getName();
  26.         $this->stopwatch->start($eventName'websocket');
  27.         $this->pusher->push($data$routeName$routeParameters$context);
  28.         $this->stopwatch->stop($eventName);
  29.         $this->dataCollector->collectData($this->stopwatch->getEvent($eventName), $this->getName());
  30.     }
  31.     public function close(): void
  32.     {
  33.         $this->pusher->close();
  34.     }
  35.     public function setName(string $name): void
  36.     {
  37.         $this->pusher->setName($name);
  38.     }
  39.     public function getName(): string
  40.     {
  41.         return $this->pusher->getName();
  42.     }
  43. }