BuilderRegistry.php 620 B

12345678910111213141516171819202122232425
  1. <?php
  2. declare(strict_types=1);
  3. namespace Endroid\QrCode\Builder;
  4. final class BuilderRegistry implements BuilderRegistryInterface
  5. {
  6. /** @var array<BuilderInterface> */
  7. private array $builders = [];
  8. public function getBuilder(string $name): BuilderInterface
  9. {
  10. if (!isset($this->builders[$name])) {
  11. throw new \Exception(sprintf('Builder with name "%s" not available from registry', $name));
  12. }
  13. return $this->builders[$name];
  14. }
  15. public function addBuilder(string $name, BuilderInterface $builder): void
  16. {
  17. $this->builders[$name] = $builder;
  18. }
  19. }