コード例 #1
0
 /**
  * @inheritdoc
  */
 protected function doLoad($file)
 {
     libxml_use_internal_errors(true);
     $xml = new \DOMDocument();
     $xml->load($file);
     if (!$xml->schemaValidate(__DIR__ . DIRECTORY_SEPARATOR . "XML" . DIRECTORY_SEPARATOR . "configuration.xsd")) {
         libxml_clear_errors();
         throw MigrationException::configurationNotValid('XML configuration did not pass the validation test.');
     }
     $xml = simplexml_load_file($file, "SimpleXMLElement", LIBXML_NOCDATA);
     $config = [];
     if (isset($xml->name)) {
         $config['name'] = (string) $xml->name;
     }
     if (isset($xml->table['name'])) {
         $config['table_name'] = (string) $xml->table['name'];
     }
     if (isset($xml->table['column'])) {
         $config['column_name'] = (string) $xml->table['column'];
     }
     if (isset($xml->{'migrations-namespace'})) {
         $config['migrations_namespace'] = (string) $xml->{'migrations-namespace'};
     }
     if (isset($xml->{'organize-migrations'})) {
         $config['organize_migrations'] = $xml->{'organize-migrations'};
     }
     if (isset($xml->{'migrations-directory'})) {
         $config['migrations_directory'] = $this->getDirectoryRelativeToFile($file, (string) $xml->{'migrations-directory'});
     }
     if (isset($xml->migrations->migration)) {
         $config['migrations'] = $xml->migrations->migration;
     }
     $this->setConfiguration($config);
 }
コード例 #2
0
 private function setMigrationOrganisation($migrationOrganisation)
 {
     if (strcasecmp($migrationOrganisation, static::VERSIONS_ORGANIZATION_BY_YEAR) == 0) {
         $this->setMigrationsAreOrganizedByYear();
     } else {
         if (strcasecmp($migrationOrganisation, static::VERSIONS_ORGANIZATION_BY_YEAR_AND_MONTH) == 0) {
             $this->setMigrationsAreOrganizedByYearAndMonth();
         } else {
             $msg = 'Unknown ' . var_export($migrationOrganisation, true) . ' for configuration "organize_migrations".';
             throw MigrationException::configurationNotValid($msg);
         }
     }
 }