/** * Get a exporter driver instance * * @param string $type The type to get (yml, xml, etc.) * @param string $source The directory where the exporter will export to * @return AbstractExporter $exporter */ public function getExporter($type, $dest = null) { if (!isset(self::$_exporterDrivers[$type])) { throw ExportException::invalidExporterDriverType($type); } $class = self::$_exporterDrivers[$type]; return new $class($dest); }
/** * Export each ClassMetadata instance to a single Doctrine Mapping file * named after the entity * * @return void */ public function export() { if (!is_dir($this->_outputDir)) { mkdir($this->_outputDir, 0777, true); } foreach ($this->_metadata as $metadata) { //In case output is returned, write it to a file, skip otherwise if ($output = $this->exportClassMetadata($metadata)) { $path = $this->_generateOutputPath($metadata); $dir = dirname($path); if (!is_dir($dir)) { mkdir($dir, 0777, true); } if (file_exists($path) && !$this->_overwriteExistingFiles) { throw ExportException::attemptOverwriteExistingFile($path); } file_put_contents($path, $output); } } }
/** * Add a new mapping directory to the array of directories to convert and export * to another format * * @param string $source The source for the mapping * @param string $type The type of mapping files (yml, xml, etc.) * @return void */ public function addMappingSource($source, $type = null) { if ($type === null) { $type = $this->_determineSourceType($source); } if (!isset(self::$_mappingDrivers[$type])) { throw ExportException::invalidMappingDriverType($type); } $source = $this->_getSourceByType($type, $source); $driver = $this->_getMappingDriver($type, $source); $this->_mappingSources[] = array($source, $driver); }