inFormat = explode( '-', $inFormat ); $this->outFormat = explode( '-', $outFormat ); } public function convert( $inFile, $outFile ) { $inputDocument = $this->getDocument( $this->inFormat ); $inputDocument->options->errorReporting = E_PARSE | E_ERROR; $inputDocument->loadFile( $inFile ); $docBook = $inputDocument->getAsDocbook(); $outputDocument = $this->getDocument( $this->outFormat ); $outputDocument->createFromDocbook( $docBook ); file_put_contents( $outFile, $outputDocument->save() ); } protected function getDocument( array $format ) { switch ( $format[0] ) { case 'wiki': return $this->getWikiDocument( $format[1] ); case 'text': return $this->getTextDocument( $format[1] ); case 'xml': return $this->getXmlDocument( $format[1] ); } } protected function getWikiDocument( $format ) { $tokenizer = null; switch ( $format ) { case 'confluence': $tokenizer = ezcDocumentWikiConfluenceTokenizer(); break; case 'dokuwiki': $tokenizer = ezcDocumentWikiDokuwikiTokenizer(); break; case 'mediawiki': $tokenizer = ezcDocumentWikiMediawikiTokenizer(); break; case 'creole': $tokenizer = ezcDocumentWikiCreoleTokenizer(); break; } $doc = new ezcDocumentWiki( new ezcDocumentWikiOptions( array( 'tokenizer' => $tokenizer ) ) ); return $doc; } protected function getXmlDocument( $format ) { switch ( $format ) { case 'xhtml': return new ezcDocumentXhtml(); case 'ezxml': return new ezcDocumentEzXml(); case 'docbook': return new ezcDocumentDocbook(); } } protected function getTextDocument( $format ) { $doc = new ezcDocumentRst(); $doc->registerDirective( 'hint', 'ezcDocumentRstNoteDirective' ); return $doc; } } ?>