private function setupProperty($value) { @(list($id, $typeAndDesc) = explode(':', $value, 2)); if (!isset($typeAndDesc)) { die('The type of property ' . $id . ' is empty.'); } @(list($type, $description) = explode(' ', $typeAndDesc, 2)); if (isset($description)) { $this->curParams['description'] = $description; } $type = trim($type); $this->curParams['id'] = $id; if (TypeUtils::isArray($type)) { if (TypeUtils::isPrimitive(TypeUtils::getType($type))) { $itemType = 'type'; } else { $itemType = '$ref'; } $this->curParams['itemType'] = $itemType; $this->curParams['items'] = TypeUtils::getType($type); $type = 'Array'; } else { if (TypeUtils::isRange($type)) { list($min, $max) = TypeUtils::getRange($type); $this->curParams['min'] = intval(trim($min)); $this->curParams['max'] = intval(trim($max)); $this->curParams['valueType'] = 'RANGE'; $type = 'int'; } else { if (TypeUtils::isList($type)) { list($type, $values) = TypeUtils::getList($type); $this->curParams['values'] = $values; $this->curParams['valueType'] = "LIST"; } } } $this->curParams['type'] = $type; }
private function getRelatedModel($model, $modelTable, $relatedModels = null) { if (is_null($relatedModels)) { $relatedModels = array(); } if (!isset($modelTable[$model])) { //echo '[Warning] Model ' . $model . ' not found. on line ' . __LINE__ . " of " . __FILE__."\n"; return $relatedModels; } foreach ($modelTable[$model]['properties'] as $property) { $type = $this->getType($property); if (false === TypeUtils::isPrimitive($type)) { array_push($relatedModels, $type); @$this->precompile($this->modelTable[$this->extractModelName($type)], $type); $relatedModels = array_merge($relatedModels, $this->getRelatedModel($type, $modelTable, $relatedModels)); } } return $relatedModels; }