Viewing file: UniqueBroadcastEvent.php (1.5 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Illuminate\Broadcasting;
use Illuminate\Container\Container; use Illuminate\Contracts\Cache\Repository; use Illuminate\Contracts\Queue\ShouldBeUnique;
class UniqueBroadcastEvent extends BroadcastEvent implements ShouldBeUnique { /** * The unique lock identifier. * * @var mixed */ public $uniqueId;
/** * The number of seconds the unique lock should be maintained. * * @var int */ public $uniqueFor;
/** * Create a new event instance. * * @param mixed $event * @return void */ public function __construct($event) { $this->uniqueId = get_class($event);
if (method_exists($event, 'uniqueId')) { $this->uniqueId .= $event->uniqueId(); } elseif (property_exists($event, 'uniqueId')) { $this->uniqueId .= $event->uniqueId; }
if (method_exists($event, 'uniqueFor')) { $this->uniqueFor = $event->uniqueFor(); } elseif (property_exists($event, 'uniqueFor')) { $this->uniqueFor = $event->uniqueFor; }
parent::__construct($event); }
/** * Resolve the cache implementation that should manage the event's uniqueness. * * @return \Illuminate\Contracts\Cache\Repository */ public function uniqueVia() { return method_exists($this->event, 'uniqueVia') ? $this->event->uniqueVia() : Container::getInstance()->make(Repository::class); } }
|