private function addManagedExtension(PackageDescriptor $descriptor)
{
$className = $descriptor->getClass();
if ($this->isClassLoadable($className) === false) {
$this->flashLogger->error(Trans::__("Extension package %NAME% has an invalid class '%CLASS%' and has been skipped.", ['%NAME%' => $descriptor->getName(), '%CLASS%' => $className]));
return;
}
/** @var ExtensionInterface $extension */
$extension = new $className();
if ($extension instanceof ExtensionInterface) {
$baseDir = $this->extFs->getDir($descriptor->getPath());
$webDir = $this->webFs->getDir($descriptor->getWebPath());
$this->add($extension, $baseDir, $webDir, $descriptor->getName())->setDescriptor($descriptor);
} else {
$this->flashLogger->error(Trans::__("Extension package %NAME% base class '%CLASS%' does not implement \\Bolt\\Extension\\ExtensionInterface and has been skipped.", ['%NAME%' => $descriptor->getName(), '%CLASS%' => $className]));
}
}