public function __construct(array $data) { parent::__construct($data); foreach (array('state') as $key) { if (!array_key_exists($key, $data)) { throw new TokenException(sprintf("missing field '%s'", $key)); } } $this->setState($data['state']); }