PHP 预加载
了解 PHP 8 预加载机制,在服务器启动时将代码加载到内存,提升性能。 · 难度:入门 · +15XP
预加载简介
预加载(Preloading)是 PHP 8 的特性,允许在服务器启动时将指定 PHP 文件加载到共享内存中,永久可用,避免每次请求重新编译。
配置方式
在 php.ini 中设置:opcache.preload=/path/to/preload.php
preload.php 示例
// preload.php
require_once __DIR__ . '/vendor/autoload.php';
// 预加载常用类
$classes = [
App\Services\UserService::class,
App\Models\User::class,
App\Controllers\HomeController::class,
];
foreach ($classes as $class) {
if (!class_exists($class, false)) {
require_once (new ReflectionClass($class))->getFileName();
} else {
opcache_compile_file((new ReflectionClass($class))->getFileName());
}
}
注意事项
| 要点 | 说明 |
|---|---|
| 类不可变 | 预加载类不能重新定义 |
| 文件路径 | 使用绝对路径 |
| 兼容性 | 避免预加载动态代码 |
练习提示
编写一个预加载脚本,预加载一个自定义 MathHelper 类。