Skip to main content
Glama

CTX: Context as Code (CaC) tool

by context-hub
MIT License
235
  • Apple
  • Linux
VariableBootloader.php2.87 kB
<?php declare(strict_types=1); namespace Butschster\ContextGenerator\Lib\Variable; use Butschster\ContextGenerator\Config\ConfigLoaderBootloader; use Butschster\ContextGenerator\Config\Parser\VariablesParserPlugin; use Butschster\ContextGenerator\DirectoriesInterface; use Butschster\ContextGenerator\Lib\Variable\Provider\CompositeVariableProvider; use Butschster\ContextGenerator\Lib\Variable\Provider\ConfigVariableProvider; use Butschster\ContextGenerator\Lib\Variable\Provider\DotEnvVariableProvider; use Butschster\ContextGenerator\Lib\Variable\Provider\PredefinedVariableProvider; use Butschster\ContextGenerator\Lib\Variable\Provider\VariableProviderInterface; use Dotenv\Repository\RepositoryBuilder; use Spiral\Boot\Bootloader\Bootloader; final class VariableBootloader extends Bootloader { #[\Override] public function defineSingletons(): array { return [ ConfigVariableProvider::class => ConfigVariableProvider::class, VariablesParserPlugin::class => VariablesParserPlugin::class, VariableProviderInterface::class => static function ( ConfigVariableProvider $configVariableProvider, DirectoriesInterface $dirs, ) { $envFilePath = null; $envFileName = null; if ($dirs->getEnvFilePath() !== null) { $envFilePath = (string) ($dirs->getEnvFilePath()->isFile() ? $dirs->getEnvFilePath()->parent() : $dirs->getEnvFilePath()); $envFileName = $dirs->getEnvFilePath()->name(); } return new CompositeVariableProvider( $configVariableProvider, // Environment variables have middle priority new DotEnvVariableProvider( repository: RepositoryBuilder::createWithDefaultAdapters()->make(), rootPath: $envFilePath, envFileName: $envFileName, ), // Predefined system variables have lowest priority new PredefinedVariableProvider(dirs: $dirs), ); }, VariableReplacementProcessorInterface::class => static fn( VariableReplacementProcessor $replacementProcessor, ) => new CompositeProcessor([ $replacementProcessor, ]), VariableResolver::class => VariableResolver::class, ]; } public function boot( ConfigLoaderBootloader $configLoaderBootloader, VariablesParserPlugin $variablesParserPlugin, ): void { // Register the variables parser plugin with the config loader $configLoaderBootloader->registerParserPlugin($variablesParserPlugin); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/context-hub/generator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server