/** * The entry point to the class * * @param Tx_ExtensionBuilder_Domain_Model_Extension $extension */ public function build(Tx_ExtensionBuilder_Domain_Model_Extension $extension) { $this->extension = $extension; if ($this->settings['extConf']['enableRoundtrip'] == 1) { $this->roundTripEnabled = TRUE; t3lib_div::devLog('roundtrip enabled', 'extension_builder', 0, $this->settings); } else { t3lib_div::devLog('roundtrip disabled', 'extension_builder', 0, $this->settings); } if (isset($this->settings['codeTemplateRootPath'])) { $this->codeTemplateRootPath = $this->settings['codeTemplateRootPath']; } else { throw new Exception('No codeTemplateRootPath configured'); } if ($this->extension->getTargetVersion() == 4.5) { $this->locallangFileFormat = 'xml'; } // Base directory already exists at this point $this->extensionDirectory = $this->extension->getExtensionDir(); if (!is_dir($this->extensionDirectory)) { t3lib_div::mkdir($this->extensionDirectory); } t3lib_div::mkdir_deep($this->extensionDirectory, 'Configuration'); $this->configurationDirectory = $this->extensionDirectory . 'Configuration/'; t3lib_div::mkdir_deep($this->extensionDirectory, 'Resources/Private'); $this->privateResourcesDirectory = $this->extensionDirectory . 'Resources/Private/'; $this->generateYamlSettingsFile(); $this->generateExtensionFiles(); $this->generatePluginFiles(); $this->copyStaticFiles(); $this->generateTCAFiles(); $this->generateTyposcriptFiles(); $this->generateHtaccessFile(); $this->generateLocallangFiles(); $this->generateDomainObjectRelatedFiles(); if (floatval($this->extension->getTargetVersion()) > 4.6) { $this->generateDocumentationFiles(); } }