/** * Interpret the $resource and retrieve from it parameters witch the implementation is interested in. * * @param ResourceInterface $resource * @return void */ public function interpret(ResourceInterface $resource) { $url = $resource->getUrl(); $query = parse_url($url, PHP_URL_QUERY); if (!$query) { return; } // Do the magick parse_str($query, $data); foreach ((array) $data as $name => $value) { $param = new GenericParam(); $param->setName($name); $param->setValue($value); $this->set($param); } }
/** * Interpret the $resource and retrieve from it parameters witch the implementation is interested in. * * @param ResourceInterface $resource * @return void */ public function interpret(ResourceInterface $resource) { $url = $resource->getUrl(); $path = parse_url($url, PHP_URL_PATH); if (!$path) { // TODO: Should throw exception ? return; } $self = $this; preg_replace_callback(self::PARAM_REGEXP, function ($matches) use($self) { $param = new GenericParam(); $param->setName($matches['name']); $self->set($param); // make cleaner param return '<' . $param->getName() . '>'; }, $path); }
protected function parseGeneral($general) { if (!is_array($general)) { return; } $general = array_intersect_key($general, $this->allowedGeneralKeys); foreach ($general as $namespace => $data) { switch ($namespace) { case 'params': foreach ((array) $data as $name => $options) { $param = new GenericParam(); $param->setName($name); $param->setOptions($options); $this->generalParams->set($param); } break; } } }