protected function parseHash($hash) { parent::parseHash($hash); if ($hash === null) { $this->params = $this->getDefaultParams(); return; } $parts = explode($this->getDelimiter(), $hash); $paramKeys = array_keys($this->getDefaultParams()); if (count($parts) < count($paramKeys)) { throw new PasswordError('Hash is missing required parameters.'); } if ($paramKeys) { $this->args = array_splice($parts, count($paramKeys)); $this->params = array_combine($paramKeys, $parts); } else { $this->args = $parts; } if ($this->args) { $this->hash = array_pop($this->args); } else { $this->hash = null; } }