Example #1
0
 protected function setUp($settingFile = '')
 {
     if (!class_exists('PHPParser_Parser')) {
         \EBT\ExtensionBuilder\Parser\AutoLoader::register();
     }
     if (!class_exists('PHPParser_Parser')) {
         die('Parser not found!!');
     }
     $this->fixturesPath = PATH_typo3conf . 'ext/extension_builder/Tests/Fixtures/';
     $this->extension = $this->getMock('EBT\\ExtensionBuilder\\Domain\\Model\\Extension', array('getExtensionDir'));
     $extensionKey = 'dummy';
     vfsStream::setup('testDir');
     $dummyExtensionDir = vfsStream::url('testDir') . '/';
     $this->extension->setVendorName('EBT');
     $this->extension->setExtensionKey($extensionKey);
     $this->extension->expects($this->any())->method('getExtensionDir')->will($this->returnValue($dummyExtensionDir));
     if (is_dir($dummyExtensionDir)) {
         GeneralUtility::mkdir($dummyExtensionDir, TRUE);
     }
     $yamlParser = new \EBT\ExtensionBuilder\Utility\SpycYAMLParser();
     $settings = $yamlParser->YAMLLoadString(file_get_contents($this->fixturesPath . 'Settings/settings1.yaml'));
     $this->extension->setSettings($settings);
     $configurationManager = GeneralUtility::makeInstance('EBT\\ExtensionBuilder\\Configuration\\ConfigurationManager');
     $this->roundTripService = $this->getMock($this->buildAccessibleProxy('EBT\\ExtensionBuilder\\Service\\RoundTrip'), array('dummy'));
     $this->classBuilder = GeneralUtility::makeInstance('EBT\\ExtensionBuilder\\Service\\ClassBuilder');
     $this->classBuilder->injectConfigurationManager($configurationManager);
     $this->roundTripService->injectClassBuilder($this->classBuilder);
     $this->roundTripService->injectConfigurationManager($configurationManager);
     $this->templateParser = $this->getMock($this->buildAccessibleProxy('TYPO3\\CMS\\Fluid\\Core\\Parser\\TemplateParser'), array('dummy'));
     $this->fileGenerator = $this->getMock($this->buildAccessibleProxy('EBT\\ExtensionBuilder\\Service\\FileGenerator'), array('dummy'));
     $objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
     $this->objectManager = clone $objectManager;
     $this->parserService = new \EBT\ExtensionBuilder\Service\Parser(new \PHPParser_Lexer());
     $this->printerService = new \EBT\ExtensionBuilder\Service\Printer();
     $this->printerService->injectNodeFactory(new \EBT\ExtensionBuilder\Parser\NodeFactory());
     $localizationService = $this->objectManager->get('EBT\\ExtensionBuilder\\Service\\LocalizationService');
     $this->fileGenerator->injectObjectManager($this->objectManager);
     $this->fileGenerator->injectPrinterService($this->printerService);
     $this->fileGenerator->injectLocalizationService($localizationService);
     $this->roundTripService->injectParserService($this->parserService);
     $this->roundTripService->initialize($this->extension);
     $this->classBuilder->injectRoundtripService($this->roundTripService);
     $this->classBuilder->injectParserService($this->parserService);
     $this->classBuilder->injectPrinterService($this->printerService);
     $this->classBuilder->injectClassFactory(new \EBT\ExtensionBuilder\Parser\ClassFactory());
     $this->classBuilder->initialize($this->fileGenerator, $this->extension, TRUE);
     $this->fileGenerator->injectClassBuilder($this->classBuilder);
     $this->codeTemplateRootPath = PATH_typo3conf . 'ext/extension_builder/Resources/Private/CodeTemplates/Extbase/';
     $this->modelClassTemplatePath = $this->codeTemplateRootPath . 'Classes/Domain/Model/Model.phpt';
     $this->fileGenerator->setSettings(array('codeTemplateRootPath' => $this->codeTemplateRootPath, 'extConf' => array('enableRoundtrip' => '1')));
     $this->fileGenerator->_set('codeTemplateRootPath', PATH_typo3conf . 'ext/extension_builder/Resources/Private/CodeTemplates/Extbase/');
     $this->fileGenerator->_set('enableRoundtrip', true);
     $this->fileGenerator->_set('extension', $this->extension);
 }
Example #2
0
<?php

if (!defined('TYPO3_MODE')) {
    die('Access denied.');
}
if (TYPO3_MODE === 'BE' && !(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL)) {
    \EBT\ExtensionBuilder\Parser\AutoLoader::register();
    /**
     * Register Backend Module
     */
    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule('EBT.' . $_EXTKEY, 'tools', 'extensionbuilder', '', array('BuilderModule' => 'index,domainmodelling,dispatchRpc'), array('access' => 'user,group', 'icon' => 'EXT:extension_builder/ext_icon.gif', 'labels' => 'LLL:EXT:extension_builder/Resources/Private/Language/locallang_mod.xlf'));
    // \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerAjaxHandler(
    //     'ExtensionBuilder::wiringEditorSmdEndpoint',
    //	   'EBT\ExtensionBuilder\Configuration\ConfigurationManager->getWiringEditorSmd'
    // );
    // To stay compatible with older TYPO3 versions, we register the ajax script the
    // old way. It is also OK to not have this Ajax call to be CSRF protected as it
    // is of no use for an attacker in this scenario even if the result contains the
    // module token.
    $GLOBALS['TYPO3_CONF_VARS']['BE']['AJAX']['ExtensionBuilder::wiringEditorSmdEndpoint'] = '' . 'EBT\\ExtensionBuilder\\Configuration\\ConfigurationManager->getWiringEditorSmd';
}
 /**
  *
  * @param \EBT\ExtensionBuilder\Service\FileGenerator $fileGenerator
  * @param \EBT\ExtensionBuilder\Domain\Model\Extension $extension
  * @param boolean roundtrip enabled?
  *
  * @return void
  */
 public function initialize(FileGenerator $fileGenerator, Model\Extension $extension, $roundTripEnabled)
 {
     $this->fileGenerator = $fileGenerator;
     $this->extension = $extension;
     $settings = $extension->getSettings();
     if ($roundTripEnabled) {
         $this->roundTripService->initialize($this->extension);
         \EBT\ExtensionBuilder\Parser\AutoLoader::register();
     }
     $this->settings = $settings['classBuilder'];
     $this->extensionDirectory = $this->extension->getExtensionDir();
 }