2 namespace TYPO3\CMS\Core\Core;
66 return !self::isTestingContext() && file_exists(self::getClassLoadingInformationDirectory() . self::AUTOLOAD_CLASSMAP_FILENAME);
72 public static function dumpClassLoadingInformation()
74 self::ensureAutoloadInfoDirExists();
75 $composerClassLoader = static::getClassLoader();
76 $activeExtensionPackages = static::getActiveExtensionPackages();
79 $generator =
GeneralUtility::makeInstance(ClassLoadingInformationGenerator::class, $composerClassLoader, $activeExtensionPackages, PATH_site, self::isTestingContext());
80 $classInfoFiles = $generator->buildAutoloadInformationFiles();
81 GeneralUtility::writeFile(self::getClassLoadingInformationDirectory() . self::AUTOLOAD_CLASSMAP_FILENAME, $classInfoFiles[
'classMapFile']);
82 GeneralUtility::writeFile(self::getClassLoadingInformationDirectory() . self::AUTOLOAD_PSR4_FILENAME, $classInfoFiles[
'psr-4File']);
84 $classAliasMapFile = $generator->buildClassAliasMapFile();
85 GeneralUtility::writeFile(self::getClassLoadingInformationDirectory() . self::AUTOLOAD_CLASSALIASMAP_FILENAME, $classAliasMapFile);
94 $composerClassLoader = static::getClassLoader();
96 $dynamicClassAliasMapFile = self::getClassLoadingInformationDirectory() . self::AUTOLOAD_CLASSALIASMAP_FILENAME;
97 if (file_exists($dynamicClassAliasMapFile)) {
98 $classAliasMap = require $dynamicClassAliasMapFile;
99 if (is_array($classAliasMap) && !empty($classAliasMap[
'aliasToClassNameMapping']) && !empty($classAliasMap[
'classNameToAliasMapping'])) {
104 $dynamicClassMapFile = self::getClassLoadingInformationDirectory() . self::AUTOLOAD_CLASSMAP_FILENAME;
105 if (file_exists($dynamicClassMapFile)) {
106 $classMap = require $dynamicClassMapFile;
107 if (!empty($classMap) && is_array($classMap)) {
108 $composerClassLoader->addClassMap($classMap);
112 $dynamicPsr4File = self::getClassLoadingInformationDirectory() . self::AUTOLOAD_PSR4_FILENAME;
113 if (file_exists($dynamicPsr4File)) {
114 $psr4 = require $dynamicPsr4File;
115 if (is_array($psr4)) {
116 foreach ($psr4 as $prefix => $paths) {
117 $composerClassLoader->setPsr4($prefix, $paths);
129 public static function registerTransientClassLoadingInformationForPackage(
PackageInterface $package)
131 $composerClassLoader = static::getClassLoader();
132 $activeExtensionPackages = static::getActiveExtensionPackages();
135 $generator =
GeneralUtility::makeInstance(ClassLoadingInformationGenerator::class, $composerClassLoader, $activeExtensionPackages, PATH_site, self::isTestingContext());
137 $classInformation = $generator->buildClassLoadingInformationForPackage($package);
138 $composerClassLoader->addClassMap($classInformation[
'classMap']);
139 foreach ($classInformation[
'psr-4'] as $prefix => $paths) {
140 $composerClassLoader->setPsr4($prefix, $paths);
142 $classAliasMap = $generator->buildClassAliasMapForPackage($package);
143 if (is_array($classAliasMap) && !empty($classAliasMap[
'aliasToClassNameMapping']) && !empty($classAliasMap[
'classNameToAliasMapping'])) {
153 if (self::isTestingContext()) {
154 return PATH_site . self::AUTOLOAD_INFO_DIR_TESTS;
156 return PATH_site . self::AUTOLOAD_INFO_DIR;
177 $autoloadInfoDir = self::getClassLoadingInformationDirectory();
178 if (!file_exists($autoloadInfoDir)) {
210 protected static function getActiveExtensionPackages()
212 $activeExtensionPackages = [];
215 foreach ($packageManager->getActivePackages() as $package) {
220 $activeExtensionPackages[] = $package;
222 return $activeExtensionPackages;