recipients * -> e.g if multiple browser tabs are open * @var null|array */ private $characterIds; /** * Payload constructor. * @param string $task * @param null $load * @param array|null $characterIds */ public function __construct(string $task, $load = null, ?array $characterIds = null){ $this->setTask($task); $this->setLoad($load); $this->setCharacterIds($characterIds); } /** * @param string $task */ public function setTask(string $task){ if($task){ $this->task = $task; }else{ throw new \InvalidArgumentException(self::ERROR_TASK_MISSING); } } /** * @param null $load */ public function setLoad($load = null){ $this->load = $load; } /** * @param array|null $characterIds */ public function setCharacterIds(?array $characterIds){ if(is_array($characterIds)){ $this->characterIds = $characterIds; }else{ $this->characterIds = null; } } /** * @param $name * @return mixed */ public function __get($name){ return $this->$name; } /** * @return array|mixed */ public function jsonSerialize(){ return get_object_vars($this); } }