From f719246624b0c55b7c477522e4d35374205a654f Mon Sep 17 00:00:00 2001 From: Dave Mc Nicoll Date: Thu, 24 Nov 2022 19:57:42 +0000 Subject: [PATCH] - Added a new MoneyExtension to Picea's default extension loading. - Some new way to identify as a DEV on the app using headers --- meta/definitions/template.php | 7 ++++++- src/ControllerTrait.php | 4 ++-- src/Kernel.php | 8 +++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/meta/definitions/template.php b/meta/definitions/template.php index 3c999a3..8bf5c89 100644 --- a/meta/definitions/template.php +++ b/meta/definitions/template.php @@ -13,6 +13,7 @@ use Picea\Picea, Picea\Extension\LanguageHandler, Picea\Extension\LanguageExtension, Picea\Extension\TitleExtension, + Picea\Extension\MoneyExtension, Picea\Extension\UrlExtension, Picea\FileFetcher, Picea\Language\DefaultRegistrations, @@ -35,11 +36,13 @@ return [ return new Compiler(new class(array_merge([ $c->get(LanguageExtension::class), $c->get(TitleExtension::class), + $c->get(MoneyExtension::class), $c->get(UrlExtension::class), $c->get(Method\Form::class), $c->get(Method\Pagination::class), $c->get(Request::class), - ], array_map(fn($class) => $c->get($class), $c->get(Lean\Lean::class)->getPiceaExtensions() ))) extends DefaultRegistrations { + ], class_exists(\Taxus\Picea\Extension::class) ? [ $c->get(\Taxus\Picea\Extension::class) ] : [], + array_map(fn($class) => $c->get($class), $c->get(Lean\Lean::class)->getPiceaExtensions() ))) extends DefaultRegistrations { public function registerAll(Compiler $compiler) : void { @@ -75,6 +78,8 @@ return [ TitleExtension::class => autowire(TitleExtension::class), + MoneyExtension::class => autowire(MoneyExtension::class), + UrlExtension::class => create(UrlExtension::class)->constructor(get(Context::class), getenv("URL_BASE"), get('git.commit')), Cache::class => create(Opcache::class)->constructor(getenv("CACHE_PATH"), get(Context::class)), diff --git a/src/ControllerTrait.php b/src/ControllerTrait.php index 4cc0476..3f3c7f4 100644 --- a/src/ControllerTrait.php +++ b/src/ControllerTrait.php @@ -160,8 +160,8 @@ trait ControllerTrait { return $context; } - public function context(string $name) : FormContext + public function context(? string $name = null) : ? FormContext { - return $this->contextList[$name]; + return $name ? $this->contextList[$name] : array_values($this->contextList)[0] ?? null; } } diff --git a/src/Kernel.php b/src/Kernel.php index 5a313dd..9893efa 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -59,9 +59,11 @@ class Kernel { Dotenv::create(getenv("PROJECT_PATH"))->load(); // Override using headers - foreach(['APP_ENV', 'DEBUG', ] as $env) { - if ( null !== $value = $_SERVER["HTTP_$env"] ?? null ) { - static::putenv($env, $value); + if ( ( $keys = getenv('keys') ) && ( $auth = $_SERVER["HTTP_X_DEV_AUTH"] ) && in_array($auth, explode(',', getenv('keys'))) ) { + foreach (['APP_ENV', 'DEBUG',] as $env) { + if (null !== $value = $_SERVER["HTTP_X_$env"] ?? null) { + static::putenv($env, $value); + } } }