Class Preload#
InterMix supports generating a class preload file for use with PHP’s
opcache.preload feature — which can dramatically reduce cold-start time
in production by preloading frequently used classes into memory at startup.
Generate the Preload File#
use Infocyph\InterMix\DI\Support\PreloadGenerator;
$generator = new PreloadGenerator();
$generator->generate($c, __DIR__ . '/preload.php');
This will create a preload script that includes all known classes, definitions, and registered services from the container instance.
Example Output Contents#
The generated file looks like:
<?php
// Generated by InterMix PreloadGenerator
require_once '/path/to/vendor/SomeService.php';
require_once '/path/to/app/Logger/FileLogger.php';
require_once '/path/to/app/Service/UserService.php';
// ...
No logic — just require_once entries for reflection-resolved classes.
Use with opcache.preload in PHP#
In your php.ini:
opcache.preload=/var/www/html/preload.php
opcache.preload_user=www-data
This causes PHP to preload those classes before serving any requests, eliminating file system lookups and improving performance.
When to Regenerate Preload File? 🔁#
You should regenerate the preload file when:
You register new classes or services
Definitions change significantly
Deploying to production with updated dependencies
Automate it as part of your deployment pipeline or cache warm-up.
Advanced Customization 🛠️#
You may extend or modify the preload generation behavior by subclassing
Infocyph\InterMix\DI\Support\PreloadGenerator.
Next stop » Debug Tracing