ExtraConfigurator
is a class built on top of Nette Framework's Configurator
to simplify
loading and caching of configuration files in .neon
format. It automatically handles
caching in development and production environments.
- PHP 8.3 or higher
- composer
Make sure you have Nette Framework installed in your project.
composer require drago-ex/bootstrap
To load configuration files from a specified directory:
use Drago\Bootstrap\Drago\Bootstrap\ExtraConfigurator;
$configurator = new ExtraConfigurator();
// Add configuration files from the 'config' directory
$configurator->addFindConfig(__DIR__ . '/config');
// Access the application (you can configure services, routing, etc.)
$app = $configurator->app();
You can also provide multiple directories for configuration files:
$configurator->addFindConfig([
__DIR__ . '/config/first',
__DIR__ . '/config/second'
]);
You can exclude certain files or directories from being loaded:
$configurator->addFindConfig(__DIR__ . '/config', 'exclude');
This will load all .neon
files from the config
directory except exclude.neon
.
In development mode, the cache is invalidated after each request to allow immediate updates. In production mode, the cache is stored without expiration unless the configuration files are modified.
use Tracy\Debugger;
// Enable production mode to use persistent cache
Debugger::$productionMode = true;
// Cache is automatically handled and invalidated only when necessary
$configurator->addFindConfig(__DIR__ . '/config');