/**
  * 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);
     }
 }
 /**
  * @test
  * @dataProvider autoloadDevFilesAreBuildCorrectlyDataProvider
  *
  * @param array $packageManifest
  * @param array $expectedPsr4Files
  * @param array $expectedClassMapFiles
  */
 public function autoloadDevFilesAreBuildCorrectly($packageManifest, $expectedPsr4Files, $expectedClassMapFiles)
 {
     /** @var ClassLoader|\PHPUnit_Framework_MockObject_MockObject $classLoaderMock */
     $classLoaderMock = $this->getMock(ClassLoader::class);
     $generator = new ClassLoadingInformationGenerator($classLoaderMock, [$this->createPackageMock($packageManifest)], __DIR__, true);
     $files = $generator->buildAutoloadInformationFiles();
     $this->assertArrayHasKey('psr-4File', $files);
     $this->assertArrayHasKey('classMapFile', $files);
     foreach ($expectedPsr4Files as $expectation) {
         if ($expectation[0] === '!') {
             $expectedCount = 0;
         } else {
             $expectedCount = 1;
         }
         $this->assertSame($expectedCount, substr_count($files['psr-4File'], $expectation), '' . $expectation);
     }
     foreach ($expectedClassMapFiles as $expectation) {
         if ($expectation[0] === '!') {
             $expectedCount = 0;
         } else {
             $expectedCount = 1;
         }
         $this->assertSame($expectedCount, substr_count($files['classMapFile'], $expectation), '' . $expectation);
     }
 }
 /**
  * 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);
     }
 }