Files
CRM-IKZ/app/Services/WebSocket/EventPublisher.php
T
2026-07-14 08:19:56 +04:00

33 lines
662 B
PHP

<?php
declare(strict_types=1);
namespace App\Services\WebSocket;
class EventPublisher
{
private string $queueFile;
public function __construct()
{
$this->queueFile = __DIR__ . '/../../../storage/ws/events.log';
}
public function publish(array $payload): void
{
$dir = dirname($this->queueFile);
if (!is_dir($dir)) {
mkdir($dir, 0775, true);
}
$line = json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
if ($line === false) {
return;
}
file_put_contents($this->queueFile, $line . PHP_EOL, FILE_APPEND | LOCK_EX);
}
}