/**
  * @test
  */
 public function buildClassAliasMapForPackageReturnsClassAliasMapForComposerManifestInformation()
 {
     $expectedClassMap = ['aliasToClassNameMapping' => ['foo' => Fixtures\test_extension\Resources\PHP\Test::class, 'bar' => Fixtures\test_extension\Resources\PHP\AnotherTestFile::class], 'classNameToAliasMapping' => [Fixtures\test_extension\Resources\PHP\Test::class => ['foo' => 'foo'], Fixtures\test_extension\Resources\PHP\AnotherTestFile::class => ['bar' => 'bar']]];
     $packageMock = $this->createPackageMock(['extra' => ['typo3/class-alias-loader' => ['class-alias-maps' => ['Resources/PHP/ClassAliasMap.php']]]]);
     /** @var ClassLoader|\PHPUnit_Framework_MockObject_MockObject $classLoaderMock */
     $classLoaderMock = $this->getMock(ClassLoader::class);
     $generator = new ClassLoadingInformationGenerator($classLoaderMock, [], __DIR__);
     $this->assertEquals($expectedClassMap, $generator->buildClassAliasMapForPackage($packageMock));
 }
 /**
  * Sets class loading information for a package for the current web request
  *
  * @param PackageInterface $package
  * @throws \TYPO3\CMS\Core\Error\Exception
  */
 public static function registerTransientClassLoadingInformationForPackage(PackageInterface $package)
 {
     $composerClassLoader = static::getClassLoader();
     $classInformation = ClassLoadingInformationGenerator::buildClassLoadingInformationForPackage($package);
     $composerClassLoader->addClassMap($classInformation['classMap']);
     foreach ($classInformation['psr-4'] as $prefix => $paths) {
         $composerClassLoader->setPsr4($prefix, $paths);
     }
     $classAliasMap = ClassLoadingInformationGenerator::buildClassAliasMapForPackage($package);
     if (is_array($classAliasMap) && !empty($classAliasMap['aliasToClassNameMapping']) && !empty($classAliasMap['classNameToAliasMapping'])) {
         self::getClassAliasLoader($composerClassLoader)->addAliasMap($classAliasMap);
     }
 }
Exemplo n.º 3
0
 /**
  * Sets class loading information for a package for the current web request
  *
  * @param PackageInterface $package
  * @throws \TYPO3\CMS\Core\Error\Exception
  */
 public static function registerTransientClassLoadingInformationForPackage(PackageInterface $package)
 {
     $composerClassLoader = static::getClassLoader();
     $classInformation = ClassLoadingInformationGenerator::buildClassLoadingInformationForPackage($package);
     $composerClassLoader->addClassMap($classInformation['classMap']);
     foreach ($classInformation['psr-4'] as $prefix => $paths) {
         $composerClassLoader->setPsr4($prefix, $paths);
     }
     if (is_callable(array($composerClassLoader, 'addAliasMap'))) {
         $aliasMap = ClassLoadingInformationGenerator::buildClassAliasMapForPackage($package);
         $composerClassLoader->addAliasMap($aliasMap);
     }
 }