我使用了自动加载,但它没有提供请求期间使用的所有文件/类
spl_autoload_register(function ($class) {
$logFile = __DIR__ . '/autoload_log.txt';
$message = $class . "\n";
file_put_contents($logFile, $message, FILE_APPEND);
}, true, true);
是否有其他方法可以跟踪页面生成过程中涉及的所有类?
假设每个类至少扩展了一些公共父类并在使用之前被实例化,我们可以利用
late static bindings
来获取used类。
示例代码片段:
<?php
class ParentClass {
public function __construct() {
echo static::class, PHP_EOL; // or add log entries or whatever
}
}
class Child1 extends ParentClass {
}
class Child2 extends ParentClass {
}
new Child1(); // outputs Child1
new Child2(); // outputs Child2