ui_patterns icon indicating copy to clipboard operation
ui_patterns copied to clipboard

Invalid argument supplied for foreach() in /var/www/html/www/modules/contrib/ui_patterns/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php on line 141

Open MaxCSwann opened this issue 3 years ago • 0 comments

Hi guys,

I've found an error when creating an empty ui_patterns.yml file. The getPatterns() function in /var/www/html/www/modules/contrib/ui_patterns/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php attempts to run Yaml::decode($content) and pass that as an argument to the foreach() function. When the file is empty $content returns an empty string which causes the foreach() to fail.

For anyone who comes across this problem and doesnt want to roll a patch the obvious solution is to just remove any empty ui_patterns.yml files. Else, just run an empty string check.

+ if (!empty($content)) {
  foreach (Yaml::decode($content) as $id => $definition) {
    $definition['id'] = $id;
    $definition['base path'] = dirname($file_path);
    $definition['file name'] = basename($file_path);
    $definition['provider'] = $provider;
    $patterns[] = $this->getPatternDefinition($definition);
  }
+ }

MaxCSwann avatar Mar 29 '22 14:03 MaxCSwann