drago-ex / bootstrap
The `ExtraConfigurator` class extends Nette's configuration by searching for `.neon` files across directories and caching the results, with automatic cache invalidation in development.
Installs: 2 219
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=8.3 <9
- nette/application: ^3.1
- nette/bootstrap: ^3.2
- nette/caching: ^3.2
- nette/utils: ^4.0
Requires (Dev)
- nette/tester: ^2.5
- phpstan/phpstan-nette: ^1.2.9
- tracy/tracy: ^2.10
README
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.
Requirements
- PHP 8.3 or higher
- composer
Installation
Make sure you have Nette Framework installed in your project.
composer require drago-ex/bootstrap
Basic Usage
Adding Configuration Files
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();
Adding Multiple Directories
You can also provide multiple directories for configuration files:
$configurator->addFindConfig([ __DIR__ . '/config/first', __DIR__ . '/config/second' ]);
Excluding Files or Directories
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
.
Cache Management
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');