/**
* Returns the FluxPackage instance associated with
* and possibly existing in $qualifiedExtensionName.
*
* @param string $qualifiedExtensionName
* @return FluxPackageInterface
*/
public static function getPackage($qualifiedExtensionName)
{
if (empty($qualifiedExtensionName)) {
throw new PackageNotFoundException('Package name cannot be empty');
}
$extensionKey = ExtensionNamingUtility::getExtensionKey($qualifiedExtensionName);
if (!ExtensionManagementUtility::isLoaded($extensionKey)) {
throw new PackageNotFoundException(sprintf('Package name %s (extension key %s) is not loaded', $qualifiedExtensionName, $extensionKey));
}
if (!array_key_exists($extensionKey, static::$packages)) {
$manifestPath = ExtensionManagementUtility::extPath($extensionKey, 'flux.json');
static::$packages[$extensionKey] = FluxPackage::create($manifestPath)->upcast();
}
return static::$packages[$extensionKey];
}