- Added a new MoneyExtension to Picea's default extension loading.

- Some new way to identify as a DEV on the app using headers
This commit is contained in:
Dave M. 2022-11-24 19:57:42 +00:00
parent f23606de64
commit f719246624
3 changed files with 13 additions and 6 deletions

View File

@ -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)),

View File

@ -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;
}
}

View File

@ -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);
}
}
}