|
|
|
|
@ -69,13 +69,13 @@ class PreviewManager implements IPreview { |
|
|
|
|
private ?Generator $generator = null; |
|
|
|
|
protected bool $providerListDirty = false; |
|
|
|
|
protected bool $registeredCoreProviders = false; |
|
|
|
|
/** |
|
|
|
|
* @var array<string, list<ProviderClosure>> $providers |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** @var array<string, list<ProviderClosure>> $providers */ |
|
|
|
|
protected array $providers = []; |
|
|
|
|
|
|
|
|
|
/** @var array mime type => support status */ |
|
|
|
|
protected array $mimeTypeSupportMap = []; |
|
|
|
|
|
|
|
|
|
/** @var ?list<class-string<IProviderV2>> $defaultProviders */ |
|
|
|
|
protected ?array $defaultProviders = null; |
|
|
|
|
|
|
|
|
|
@ -119,9 +119,6 @@ class PreviewManager implements IPreview { |
|
|
|
|
$this->providerListDirty = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get all providers |
|
|
|
|
*/ |
|
|
|
|
#[\Override] |
|
|
|
|
public function getProviders(): array { |
|
|
|
|
if (!$this->enablePreviews) { |
|
|
|
|
@ -212,9 +209,7 @@ class PreviewManager implements IPreview { |
|
|
|
|
return $this->mimeTypeSupportMap[$mimeType]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$this->registerCoreProviders(); |
|
|
|
|
$this->registerBootstrapProviders(); |
|
|
|
|
$providerMimeTypes = array_keys($this->providers); |
|
|
|
|
$providerMimeTypes = array_keys($this->getProviders()); |
|
|
|
|
foreach ($providerMimeTypes as $supportedMimeType) { |
|
|
|
|
if (preg_match($supportedMimeType, $mimeType)) { |
|
|
|
|
$this->mimeTypeSupportMap[$mimeType] = true; |
|
|
|
|
@ -233,7 +228,6 @@ class PreviewManager implements IPreview { |
|
|
|
|
|
|
|
|
|
$fileMimeType = $mimeType ?? $file->getMimeType(); |
|
|
|
|
|
|
|
|
|
$this->registerCoreProviders(); |
|
|
|
|
if (!$this->isMimeSupported($fileMimeType)) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
@ -243,7 +237,7 @@ class PreviewManager implements IPreview { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
foreach ($this->providers as $supportedMimeType => $providers) { |
|
|
|
|
foreach ($this->getProviders() as $supportedMimeType => $providers) { |
|
|
|
|
if (preg_match($supportedMimeType, $fileMimeType)) { |
|
|
|
|
foreach ($providers as $providerClosure) { |
|
|
|
|
$provider = $this->helper->getProvider($providerClosure); |
|
|
|
|
|