如何在响应生成过程中获取所有触及的文件/类

问题描述 投票:0回答:1

我使用了自动加载,但它没有提供请求期间使用的所有文件/类

spl_autoload_register(function ($class) {
    $logFile = __DIR__ . '/autoload_log.txt';
    $message = $class . "\n";
    file_put_contents($logFile, $message, FILE_APPEND);
}, true, true);

是否有其他方法可以跟踪页面生成过程中涉及的所有类?

php symfony
1个回答
0
投票

假设每个类至少扩展了一些公共父类并在使用之前被实例化,我们可以利用

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

现场演示

© www.soinside.com 2019 - 2024. All rights reserved.