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');