コード例 #1
0
ファイル: Helper.php プロジェクト: bluesnowman/Chimera
 /**
  * This method returns the JSON schema for the specified input.
  *
  * @access public
  * @static
  * @param mixed $schema                                     the JSON schema to be loaded
  * @return array                                            the JSON schema
  */
 public static function resolveJSONSchema($schema)
 {
     if (is_string($schema)) {
         $components = preg_split('/(\\\\|_)+/', trim($schema, '\\'));
         $file = Bootstrap::rootPath() . implode(DIRECTORY_SEPARATOR, $components) . '.json';
         $schema = Config\JSON\Reader::load(new IO\File($file))->read();
     }
     $schema = Core\Convert::toDictionary($schema);
     if (isset($schema['$ref'])) {
         $result = MappingService\Data\Model\JSON\Helper::resolveJSONSchema($schema['$ref']);
         if (isset($schema['properties'])) {
             $result = array_merge($result, $schema['properties']);
         }
         return $result;
     }
     return $schema;
 }
コード例 #2
0
ファイル: File.php プロジェクト: bluesnowman/Chimera
 /**
  * This constructor initializes the class with the specified URI.
  *
  * @access public
  * @param string $uri                                       the URI to the file
  * @throws Throwable\InvalidArgument\Exception              indicates a data type mismatch
  */
 public function __construct($uri)
 {
     $this->name = null;
     $this->path = null;
     $this->ext = null;
     if (!Common\String::isTypeOf($uri)) {
         throw new Throwable\InvalidArgument\Exception('Unable to handle argument. Argument must be a string, but got :type.', array(':type' => gettype($uri)));
     }
     $this->uri = preg_replace('/^classpath:/i', Bootstrap::rootPath(), $uri, 1);
     $this->temporary = false;
 }