![]() |
TYPO3
7.6
|
Public Member Functions | |
__construct () | |
injectCoreCache (\TYPO3\CMS\Core\Cache\Frontend\PhpFrontend $coreCache) | |
injectDependencyResolver (DependencyResolver $dependencyResolver) | |
initialize (Bootstrap $bootstrap) | |
scanAvailablePackages () | |
registerPackage (PackageInterface $package, $sortAndSave=true) | |
getPackageKeyFromComposerName ($composerName) | |
getPackage ($packageKey) | |
isPackageAvailable ($packageKey) | |
isPackageActive ($packageKey) | |
deactivatePackage ($packageKey) | |
activatePackage ($packageKey) | |
activatePackageDuringRuntime ($packageKey) | |
deletePackage ($packageKey) | |
getActivePackages () | |
isPackageKeyValid ($packageKey) | |
getAvailablePackages () | |
unregisterPackage (PackageInterface $package) | |
getComposerManifest ($manifestPath) | |
Protected Attributes | |
$dependencyResolver | |
$bootstrap | |
$coreCache | |
$cacheIdentifier | |
$packagesBasePaths = array() | |
$packageAliasMap = array() | |
$requiredPackageKeys = array() | |
$runtimeActivatedPackages = array() | |
$packagesBasePath = PATH_site | |
$packages = array() | |
$packageKeys = array() | |
$composerNameToPackageKeyMap = array() | |
$activePackages = array() | |
$packageStatesPathAndFilename | |
$packageStatesConfiguration = array() | |
The default TYPO3 Package Manager Adapted from FLOW for TYPO3 CMS
Definition at line 29 of file PackageManager.php.
__construct | ( | ) |
Constructor
Definition at line 115 of file PackageManager.php.
activatePackage | ( | $packageKey | ) |
string | $packageKey |
Definition at line 644 of file PackageManager.php.
References PackageManager\getPackage(), PackageManager\isPackageActive(), PackageManager\registerTransientClassLoadingInformationForPackage(), and PackageManager\sortAndSavePackageStates().
activatePackageDuringRuntime | ( | $packageKey | ) |
Enables packages during runtime, but no class aliases will be available
string | $packageKey |
Definition at line 667 of file PackageManager.php.
References $GLOBALS, PackageManager\getPackage(), and PackageManager\registerTransientClassLoadingInformationForPackage().
deactivatePackage | ( | $packageKey | ) |
Deactivates a package and updates the packagestates configuration
string | $packageKey |
Exception\PackageStatesFileNotWritableException | |
Exception\ProtectedPackageKeyException | |
Exception\UnknownPackageException |
Definition at line 614 of file PackageManager.php.
References PackageManager\getPackage(), PackageManager\isPackageActive(), PackageManager\sortAndSavePackageStates(), and PackageManager\sortAvailablePackagesByDependencies().
Referenced by PackageManager\deletePackage().
deletePackage | ( | $packageKey | ) |
Removes a package from the file system.
string | $packageKey |
Exception | |
Exception\InvalidPackageStateException | |
Exception\ProtectedPackageKeyException | |
Exception\UnknownPackageException |
Definition at line 699 of file PackageManager.php.
References PackageManager\deactivatePackage(), PackageManager\getPackage(), PackageManager\isPackageActive(), PackageManager\isPackageAvailable(), GeneralUtility\rmdir(), PackageManager\sortAndSavePackageStates(), and PackageManager\unregisterPackage().
getActivePackages | ( | ) |
Returns an array of objects of all active packages. A package is active, if it is available and has been activated in the package manager settings. This method returns runtime activated packages too
Definition at line 733 of file PackageManager.php.
getAvailablePackages | ( | ) |
Returns an array of objects of all available packages. A package is available, if the package directory contains valid meta information.
Definition at line 864 of file PackageManager.php.
References PackageManager\$packages.
|
protected |
Definition at line 188 of file PackageManager.php.
References PackageManager\$cacheIdentifier, and PackageManager\getCacheIdentifier().
Referenced by PackageManager\loadPackageManagerStatesFromCache(), and PackageManager\saveToPackageCache().
|
protected |
Definition at line 172 of file PackageManager.php.
References PackageManager\$cacheIdentifier.
Referenced by PackageManager\getCacheEntryIdentifier().
getComposerManifest | ( | $manifestPath | ) |
Returns contents of Composer manifest as a stdObject
string | $manifestPath |
Exception\MissingPackageManifestException | |
Exception\InvalidPackageManifestException |
Definition at line 943 of file PackageManager.php.
References PackageManager\getExtensionEmConf(), and PackageManager\mapExtensionManagerConfigurationToComposerManifest().
Referenced by Package\__construct(), and PackageManager\scanAvailablePackages().
|
protected |
Returns an array of dependent package keys for the given package. It will do this recursively, so dependencies of dependant packages will also be in the result.
string | $packageKey | The package key to fetch the dependencies for |
array | $dependentPackageKeys | |
array | $trace | An array of already visited package keys, to detect circular dependencies |
Exception\InvalidPackageKeyException |
Definition at line 1082 of file PackageManager.php.
Referenced by PackageManager\resolvePackageDependencies().
|
protected |
Fetches MetaData information from ext_emconf.php, used for resolving dependencies as well.
string | $packagePath |
Exception\InvalidPackageManifestException |
Definition at line 978 of file PackageManager.php.
References $EM_CONF.
Referenced by PackageManager\getComposerManifest().
getPackage | ( | $packageKey | ) |
Returns a PackageInterface object for the specified package. A package is available, if the package directory contains valid MetaData information.
string | $packageKey |
Exception\UnknownPackageException | if the specified package is not known |
Definition at line 567 of file PackageManager.php.
References PackageManager\isPackageAvailable().
Referenced by PackageManager\activatePackage(), PackageManager\activatePackageDuringRuntime(), PackageManager\deactivatePackage(), PackageManager\deletePackage(), and PackageManager\unregisterPackageByPackageKey().
getPackageKeyFromComposerName | ( | $composerName | ) |
Resolves a TYPO3 package key from a composer package name.
string | $composerName |
Definition at line 538 of file PackageManager.php.
|
protected |
Resolves package key from Composer manifest
If it is a TYPO3 package the name of the containing directory will be used.
Else if the composer name of the package matches the first part of the lowercased namespace of the package, the mixed case version of the composer name / namespace will be used, with backslashes replaced by dots.
Else the composer name will be used with the slash replaced by a dot
object | $manifest | |
string | $packagePath | |
string | $packagesBasePath |
Exception\InvalidPackageManifestException |
Definition at line 1121 of file PackageManager.php.
Referenced by PackageManager\scanAvailablePackages().
|
protected |
Returns an array of suggested package keys for the given package.
string | $packageKey | The package key to fetch the suggestions for |
Definition at line 784 of file PackageManager.php.
References MetaData\CONSTRAINT_TYPE_SUGGESTS.
Referenced by PackageManager\resolvePackageDependencies().
|
protected |
Looks for composer.json in the given path and returns TRUE or FALSE if an ext_emconf.php exists or no composer.json is found.
string | $packagePath |
Definition at line 418 of file PackageManager.php.
Referenced by PackageManager\scanPackagesInPath().
initialize | ( | Bootstrap | $bootstrap | ) |
Initializes the package manager
Bootstrap | $bootstrap | The current bootstrap |
Definition at line 150 of file PackageManager.php.
References PackageManager\$bootstrap, PackageManager\initializeCompatibilityLoadedExtArray(), PackageManager\initializePackageObjects(), PackageManager\loadPackageManagerStatesFromCache(), PackageManager\loadPackageStates(), and PackageManager\saveToPackageCache().
|
protected |
Initializes a backwards compatibility $GLOBALS['TYPO3_LOADED_EXT'] array
Definition at line 302 of file PackageManager.php.
References $GLOBALS.
Referenced by PackageManager\initialize(), and PackageManager\sortAndSavePackageStates().
|
protected |
Initializes activePackages and requiredPackageKeys properties
Saves PackageStates.php if list of required extensions has changed.
Definition at line 274 of file PackageManager.php.
References PackageManager\$activePackages, and PackageManager\sortAndSavePackageStates().
Referenced by PackageManager\initialize().
injectCoreCache | ( | \TYPO3\CMS\Core\Cache\Frontend\PhpFrontend | $coreCache | ) |
\TYPO3\CMS\Core\Cache\Frontend\PhpFrontend | $coreCache |
Definition at line 130 of file PackageManager.php.
References PackageManager\$coreCache.
injectDependencyResolver | ( | DependencyResolver | $dependencyResolver | ) |
DependencyResolver |
Definition at line 138 of file PackageManager.php.
References PackageManager\$dependencyResolver.
isPackageActive | ( | $packageKey | ) |
Returns TRUE if a package is activated or FALSE if it's not.
string | $packageKey | The key of the package to check |
Definition at line 601 of file PackageManager.php.
Referenced by PackageManager\activatePackage(), PackageManager\deactivatePackage(), and PackageManager\deletePackage().
isPackageAvailable | ( | $packageKey | ) |
Returns TRUE if a package is available (the package's files exist in the packages directory) or FALSE if it's not. If a package is available it doesn't mean necessarily that it's active!
string | $packageKey | The key of the package to check |
Definition at line 586 of file PackageManager.php.
Referenced by PackageManager\deletePackage(), PackageManager\getPackage(), PackageManager\registerPackage(), PackageManager\registerPackagesFromConfiguration(), and PackageManager\unregisterPackage().
isPackageKeyValid | ( | $packageKey | ) |
Check the conformance of the given package key
string | $packageKey | The package key to validate |
Definition at line 852 of file PackageManager.php.
References PackageInterface\PATTERN_MATCH_EXTENSIONKEY, and PackageInterface\PATTERN_MATCH_PACKAGEKEY.
Referenced by Package\__construct(), and PackageManager\scanAvailablePackages().
|
protected |
Attempts to load the package manager states from cache
Exception\PackageManagerCacheUnavailableException |
Definition at line 226 of file PackageManager.php.
References $GLOBALS, and PackageManager\getCacheEntryIdentifier().
Referenced by PackageManager\initialize().
|
protected |
Loads the states of available packages from the PackageStates.php file. The result is stored in $this->packageStatesConfiguration.
Exception\PackageStatesUnavailableException |
Definition at line 254 of file PackageManager.php.
References PackageManager\registerPackagesFromConfiguration().
Referenced by PackageManager\initialize().
|
protected |
Fetches information from ext_emconf.php and maps it so it is treated as it would come from composer.json
string | $packageKey | |
array | $extensionManagerConfiguration | |
\stdClass | $composerManifest |
Exception\InvalidPackageManifestException |
Definition at line 1002 of file PackageManager.php.
References elseif, and PackageManager\setComposerManifestValueIfEmpty().
Referenced by PackageManager\getComposerManifest().
registerPackage | ( | PackageInterface | $package, |
$sortAndSave = true |
|||
) |
Register a native TYPO3 package
PackageInterface | $package | The Package to be registered |
bool | $sortAndSave | allows for not saving packagestates when used in loops etc. |
Exception\InvalidPackageStateException | |
Exception\PackageStatesFileNotWritableException |
Definition at line 488 of file PackageManager.php.
References PackageInterface\getPackageKey(), PackageInterface\getPackagePath(), PackageInterface\getPackageReplacementKeys(), PackageManager\isPackageAvailable(), and PackageManager\sortAndSavePackageStates().
Referenced by PackageManager\registerPackagesFromConfiguration().
|
protected |
Requires and registers all packages which were defined in packageStatesConfiguration
bool | $registerOnlyNewPackages |
Definition at line 436 of file PackageManager.php.
References PackageManager\isPackageAvailable(), PackageManager\registerPackage(), PathUtility\sanitizeTrailingSeparator(), PackageManager\sortAndSavePackageStates(), and PackageManager\unregisterPackageByPackageKey().
Referenced by PackageManager\loadPackageStates(), and PackageManager\scanAvailablePackages().
|
protected |
PackageInterface | $package |
\TYPO3\CMS\Core\Exception |
Definition at line 682 of file PackageManager.php.
References Bootstrap\usesComposerClassLoading().
Referenced by PackageManager\activatePackage(), and PackageManager\activatePackageDuringRuntime().
|
protected |
Resolves the dependent packages from the meta data of all packages recursively. The resolved direct or indirect dependencies of each package will put into the package states configuration array.
Definition at line 768 of file PackageManager.php.
References PackageManager\getDependencyArrayForPackage(), and PackageManager\getSuggestionArrayForPackage().
Referenced by PackageManager\sortAvailablePackagesByDependencies().
|
protected |
Saves the current state of all relevant information to the TYPO3 Core Cache
Definition at line 197 of file PackageManager.php.
References $GLOBALS, PackageManager\getCacheEntryIdentifier(), and StringUtility\getUniqueId().
Referenced by PackageManager\initialize().
scanAvailablePackages | ( | ) |
Scans all directories in the packages directories for available packages. For each package a Package object is created and stored in $this->packages.
Definition at line 315 of file PackageManager.php.
References PackageManager\$packagesBasePath, PackageManager\$packageStatesConfiguration, PackageManager\getComposerManifest(), PackageManager\getPackageKeyFromManifest(), PackageManager\isPackageKeyValid(), PackageManager\registerPackagesFromConfiguration(), and PackageManager\scanPackagesInPath().
Referenced by UnitTestPackageManager\initialize(), and FailsafePackageManager\loadPackageStates().
|
protected |
Scans all sub directories of the specified directory and collects the package keys of packages it finds.
The return of the array is to make this method usable in array_merge.
string | $startPath | |
array | $collectedPackagePaths |
Definition at line 917 of file PackageManager.php.
References $filename, PackageManager\hasComposerManifestFile(), and PathUtility\sanitizeTrailingSeparator().
Referenced by PackageManager\scanAvailablePackages().
|
protected |
\stdClass | $manifest | |
string | $property | |
mixed | $value |
Definition at line 1062 of file PackageManager.php.
Referenced by PackageManager\mapExtensionManagerConfigurationToComposerManifest().
|
protected |
Saves the current content of $this->packageStatesConfiguration to the PackageStates.php file.
Exception\PackageStatesFileNotWritableException |
Definition at line 808 of file PackageManager.php.
References PackageManager\initializeCompatibilityLoadedExtArray(), GeneralUtility\makeInstance(), PackageManager\sortAvailablePackagesByDependencies(), and GeneralUtility\writeFile().
Referenced by PackageManager\activatePackage(), PackageManager\deactivatePackage(), PackageManager\deletePackage(), PackageManager\initializePackageObjects(), PackageManager\registerPackage(), and PackageManager\registerPackagesFromConfiguration().
|
protected |
Orders all packages by comparing their dependencies. By this, the packages and package configurations arrays holds all packages in the correct initialization order.
Definition at line 745 of file PackageManager.php.
References PackageManager\resolvePackageDependencies().
Referenced by PackageManager\deactivatePackage(), and PackageManager\sortAndSavePackageStates().
unregisterPackage | ( | PackageInterface | $package | ) |
Unregisters a package from the list of available packages
PackageInterface | $package | The package to be unregistered |
Exception\InvalidPackageStateException |
Definition at line 876 of file PackageManager.php.
References PackageInterface\getPackageKey(), PackageManager\isPackageAvailable(), and PackageManager\unregisterPackageByPackageKey().
Referenced by PackageManager\deletePackage().
|
protected |
Unregisters a package from the list of available packages
string | $packageKey | Package Key of the package to be unregistered |
Definition at line 516 of file PackageManager.php.
References PackageManager\getPackage().
Referenced by PackageManager\registerPackagesFromConfiguration(), and PackageManager\unregisterPackage().
|
protected |
Definition at line 99 of file PackageManager.php.
Referenced by PackageManager\initializePackageObjects().
|
protected |
Definition at line 39 of file PackageManager.php.
Referenced by UnitTestPackageManager\initialize(), and PackageManager\initialize().
|
protected |
Definition at line 49 of file PackageManager.php.
Referenced by PackageManager\getCacheEntryIdentifier(), and PackageManager\getCacheIdentifier().
|
protected |
Definition at line 93 of file PackageManager.php.
|
protected |
Definition at line 44 of file PackageManager.php.
Referenced by PackageManager\injectCoreCache().
|
protected |
Definition at line 34 of file PackageManager.php.
Referenced by PackageManager\injectDependencyResolver().
|
protected |
Definition at line 59 of file PackageManager.php.
|
protected |
Definition at line 87 of file PackageManager.php.
|
protected |
Definition at line 81 of file PackageManager.php.
Referenced by PackageManager\getAvailablePackages(), and UnitTestPackageManager\initialize().
|
protected |
Definition at line 75 of file PackageManager.php.
Referenced by PackageManager\scanAvailablePackages().
|
protected |
Definition at line 54 of file PackageManager.php.
|
protected |
Definition at line 110 of file PackageManager.php.
Referenced by PackageManager\scanAvailablePackages().
|
protected |
Definition at line 104 of file PackageManager.php.
|
protected |
Definition at line 64 of file PackageManager.php.
|
protected |
Definition at line 69 of file PackageManager.php.