Loading core/lib/Drupal/Core/Recipe/InputConfigurator.php +3 −5 Original line number Diff line number Diff line Loading @@ -133,15 +133,13 @@ public function describeAll(): array { * constraints. */ public function collectAll(InputCollectorInterface $collector, array &$processed = []): void { if (is_array($this->values)) { throw new \LogicException('Input values cannot be changed once they have been set.'); } // Don't bother collecting values for a recipe we've already seen. if (in_array($this->prefix, $processed, TRUE)) { return; } if (is_array($this->values)) { throw new \LogicException('Input values cannot be changed once they have been set.'); } // First, collect values for the recipe's dependencies. /** @var \Drupal\Core\Recipe\Recipe $dependency */ foreach ($this->dependencies->recipes as $dependency) { Loading core/lib/Drupal/Core/Recipe/RecipeConfigurator.php +11 −1 Original line number Diff line number Diff line Loading @@ -15,6 +15,13 @@ final class RecipeConfigurator { */ public readonly array $recipes; /** * A cache of already-loaded recipes, keyed by path. * * @var \Drupal\Core\Recipe\Recipe[] */ private static array $cache = []; /** * @param string[] $recipes * A list of recipes for a recipe to apply. The recipes will be applied in Loading Loading @@ -56,8 +63,11 @@ public static function getIncludedRecipe(string $include_path, string $name): Re $path = $include_path . "/$name/recipe.yml"; } if (array_key_exists($path, static::$cache)) { return static::$cache[$path]; } if (file_exists($path)) { return Recipe::createFromDirectory(dirname($path)); return static::$cache[$path] = Recipe::createFromDirectory(dirname($path)); } $search_path = dirname($path, 2); throw new UnknownRecipeException($name, $search_path, sprintf("Can not find the %s recipe, search path: %s", $name, $search_path)); Loading Loading
core/lib/Drupal/Core/Recipe/InputConfigurator.php +3 −5 Original line number Diff line number Diff line Loading @@ -133,15 +133,13 @@ public function describeAll(): array { * constraints. */ public function collectAll(InputCollectorInterface $collector, array &$processed = []): void { if (is_array($this->values)) { throw new \LogicException('Input values cannot be changed once they have been set.'); } // Don't bother collecting values for a recipe we've already seen. if (in_array($this->prefix, $processed, TRUE)) { return; } if (is_array($this->values)) { throw new \LogicException('Input values cannot be changed once they have been set.'); } // First, collect values for the recipe's dependencies. /** @var \Drupal\Core\Recipe\Recipe $dependency */ foreach ($this->dependencies->recipes as $dependency) { Loading
core/lib/Drupal/Core/Recipe/RecipeConfigurator.php +11 −1 Original line number Diff line number Diff line Loading @@ -15,6 +15,13 @@ final class RecipeConfigurator { */ public readonly array $recipes; /** * A cache of already-loaded recipes, keyed by path. * * @var \Drupal\Core\Recipe\Recipe[] */ private static array $cache = []; /** * @param string[] $recipes * A list of recipes for a recipe to apply. The recipes will be applied in Loading Loading @@ -56,8 +63,11 @@ public static function getIncludedRecipe(string $include_path, string $name): Re $path = $include_path . "/$name/recipe.yml"; } if (array_key_exists($path, static::$cache)) { return static::$cache[$path]; } if (file_exists($path)) { return Recipe::createFromDirectory(dirname($path)); return static::$cache[$path] = Recipe::createFromDirectory(dirname($path)); } $search_path = dirname($path, 2); throw new UnknownRecipeException($name, $search_path, sprintf("Can not find the %s recipe, search path: %s", $name, $search_path)); Loading