コード例 #1
0
 /**
  * Fix a race condition that GeneralUtility is not available
  * during tearDown if fiddling with the autoloader where
  * backupGlobals is not set up again yet
  */
 public function setUp()
 {
     vfsStream::setup('Test');
     mkdir('vfs://Test/Packages/Application/Acme.MyApp/Classes/', 0770, TRUE);
     file_put_contents('vfs://Test/Packages/Application/Acme.MyApp/composer.json', '{"name": "acme/myapp", "type": "flow-test"}');
     $package1 = new \TYPO3\Flow\Package\Package($this->getMock('TYPO3\\Flow\\Package\\PackageManager'), 'Acme.MyApp', 'vfs://Test/Packages/Application/Acme.MyApp/', 'Classes');
     mkdir('vfs://Test/Packages/Application/Acme.MyAppAddon/Classes/', 0770, TRUE);
     file_put_contents('vfs://Test/Packages/Application/Acme.MyAppAddon/composer.json', '{"name": "acme/myappaddon", "type": "flow-test"}');
     $package2 = new \TYPO3\Flow\Package\Package($this->getMock('TYPO3\\Flow\\Package\\PackageManager'), 'Acme.MyAppAddon', 'vfs://Test/Packages/Application/Acme.MyAppAddon/', 'Classes');
     $mockClassAliasMap = $this->getMock('TYPO3\\CMS\\Core\\Core\\ClassAliasMap', array('setPackagesButDontBuildMappingFilesReturnClassNameToAliasMappingInstead', 'buildMappingFiles'), array(), '', FALSE);
     $mockClassAliasMap->expects($this->any())->method('setPackagesButDontBuildMappingFilesReturnClassNameToAliasMappingInstead')->will($this->returnValue(array()));
     $this->orinalClassAliasMap = \TYPO3\CMS\Core\Core\Bootstrap::getInstance()->getEarlyInstance('TYPO3\\CMS\\Core\\Core\\ClassAliasMap');
     $this->classLoader = new \TYPO3\CMS\Core\Core\ClassLoader(\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->getApplicationContext());
     $this->classLoader->injectClassAliasMap($mockClassAliasMap);
     $this->classLoader->setPackages(array('Acme.MyApp' => $package1, 'Acme.MyAppAddon' => $package2));
 }
コード例 #2
0
 /**
  * Updates the class loader with currently active packages.
  * This method is currently a slot that monitors the after
  * extension is installed signal to make the class loader
  * populate its caches again.
  * Maybe we find a better solution in the future, but as of now
  * we have to do this as all caches are flushed after an extension
  * is installed and the current request might fail otherwise.
  */
 public function updatePackagesForClassLoader()
 {
     $this->classLoader->setPackages($this->activePackages);
 }