예제 #1
0
 /**
  * Removes every references from Yaml schemas.
  */
 public function removeReferences()
 {
     $this->loadSchemas();
     if (!empty($this->app_schema)) {
         foreach ($this->app_schema as $bundle_name => $models) {
             if (!empty($models)) {
                 foreach ($models as $model_name => $model_data) {
                     if (!empty($model_data)) {
                         foreach ($model_data as $property_name => $property_data) {
                             unset($this->app_schema[$bundle_name][$model_name][$property_name]['_ref']);
                             if ($property_name == '_params' && empty($this->app_schema[$bundle_name][$model_name][$property_name])) {
                                 unset($this->app_schema[$bundle_name][$model_name][$property_name]);
                             }
                         }
                     }
                 }
             }
         }
         foreach ($this->app_schema as $bundle_name => $models) {
             $schema_content = \Sybil\Yaml::dump($models, 2, 4);
             $schema_directory = $_SERVER['PWD'] . '/bundle/' . $bundle_name . '/';
             $schema_file = $schema_directory . 'schema.yml';
             if (file_exists($schema_file)) {
                 file_put_contents($schema_file, $schema_content);
                 chmod($schema_file, 0777);
             }
             if (file_exists($schema_directory . '_schema.yml')) {
                 unlink($schema_directory . '_schema.yml');
             }
         }
     }
     echo "References have been removed from every schema.\n";
 }
 /**
  * Updates schemas with new references.
  */
 public function updateSchemas()
 {
     foreach ($this->app_entities as $bundle_name => $bundle_data) {
         $schema_content = \Sybil\Yaml::dump($bundle_data, 2, 4);
         $schema_directory = $_SERVER['PWD'] . '/bundle/' . $bundle_name . '/';
         $schema_file = $schema_directory . 'schema.yml';
         if (file_exists($schema_file)) {
             copy($schema_file, $schema_directory . '_schema.yml');
             chmod($schema_directory . '_schema.yml', 0777);
             file_put_contents($schema_file, $schema_content);
             chmod($schema_file, 0777);
         }
     }
 }