From 04e2084ab03883ec955521496cf5e3533c7c6b0b Mon Sep 17 00:00:00 2001 From: Quentin Schuler Date: Wed, 8 Jul 2026 12:17:40 +0200 Subject: [PATCH] Add the container as an extension constructor parameter to build "composable extensions". --- src/Container/Traits/HasExtensions.php | 2 +- src/Extensions/Extension.php | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Container/Traits/HasExtensions.php b/src/Container/Traits/HasExtensions.php index 475691b..f5b6e0b 100644 --- a/src/Container/Traits/HasExtensions.php +++ b/src/Container/Traits/HasExtensions.php @@ -49,7 +49,7 @@ public function resolveExtensions(array $extensions): self */ protected function resolve(\Xefi\Faker\Extensions\Extension|string $extension): Container { - $instance = $extension instanceof Extension ? $extension : new $extension(new Randomizer()); + $instance = $extension instanceof Extension ? $extension : new $extension(new Randomizer(), $this); // If the extension supports locale variations if (method_exists($instance, 'getLocale')) { diff --git a/src/Extensions/Extension.php b/src/Extensions/Extension.php index fe03b67..446a3df 100644 --- a/src/Extensions/Extension.php +++ b/src/Extensions/Extension.php @@ -4,14 +4,18 @@ use Random\Randomizer; use ReflectionClass; +use Xefi\Faker\Container\Container; class Extension { protected Randomizer $randomizer; - public function __construct(Randomizer $randomizer) + protected Container $container; + + final public function __construct(Randomizer $randomizer, Container $container) { $this->randomizer = $randomizer; + $this->container = $container; } /**