Skip to content

Commit 5eba182

Browse files
committed
Fixes bad plugin defs stopping pattern lib loads
fix(PatternLibraryCollector) This also means if you don't have a required PatternLibrary Plugin installed it no longer breaks the loader, just logs an error.
1 parent a8ab978 commit 5eba182

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/PatternLibraryCollector.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Drupal\patternkit;
44

5+
use Drupal\Component\Plugin\Exception\PluginNotFoundException;
56
use Drupal\Component\Serialization\Exception\InvalidDataTypeException;
67
use Drupal\Component\Utility\NestedArray;
78
use Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException;
@@ -440,11 +441,17 @@ protected function getLibraryMetadata(): array {
440441
unset($metadata[$library_name]['patterns']);
441442
}
442443
foreach ($pattern_libraries as $info) {
443-
$plugin_id = $info['plugin'] ?? 'twig';
444-
/** @var \Drupal\patternkit\PatternLibraryPluginInterface $plugin */
445-
$plugin = $this->libraryPluginManager->createInstance($plugin_id);
446444
$metadata[$library_name]['name'] = $library_name;
447445
$metadata[$library_name] += $info;
446+
$plugin_id = $info['plugin'] ?? 'twig';
447+
/** @var \Drupal\patternkit\PatternLibraryPluginInterface $plugin */
448+
try {
449+
$plugin = $this->libraryPluginManager->createInstance($plugin_id);
450+
}
451+
catch (PluginNotFoundException $exception) {
452+
\Drupal::logger('patternkit')->error('Error loading pattern libraries: @message', ['@message' => $exception->getMessage()]);
453+
continue;
454+
}
448455
/** @var \Drupal\patternkit\Pattern $pattern */
449456
foreach ($plugin->getMetadata($extension, $metadata[$library_name], $info['data']) as $pattern_path => $pattern) {
450457
$pattern->setLibraryPluginId($plugin_id);

0 commit comments

Comments
 (0)