/** * Gets URI parameter as an object * * Object is of class $parameter name, and is read from current data link using the parameter * value as identifier. * * @param $parameter_name string * @return object */ public function getObject($parameter_name) { if (isset($this->objects[$parameter_name])) { // parameter is in cache $object = $this->objects[$parameter_name]; } elseif (is_numeric($this->getRawParameter($parameter_name))) { if (isset($parameter_name[0]) && ctype_upper($parameter_name[0])) { $class_name = $parameter_name; } if (isset($class_name) && @class_exists($class_name)) { // object parameter $object = $this->getRawParameter($parameter_name) + 0; Mapper\Getter::getObject($object, $class_name); $this->objects[$parameter_name] = $object; } else { // free parameter $object = $this->getRawParameter($parameter_name); $this->objects[$parameter_name] = $object; } } else { // text parameter $object = $this->getRawParameter($parameter_name); if (is_string($object) && $object && $object[0] === SL) { $object = new Uri($object); } $this->objects[$parameter_name] = $object; } if (empty($object)) { $built_parameter_name = Builder::className($parameter_name); if ($built_parameter_name != $parameter_name) { return $this->getObject(Builder::className($parameter_name)); } } return $object; }
/** * @return object */ public function getObject() { Getter::getObject($this->object, $this->class_name); return $this->object; }