gpt4 book ai didi

php - 如何检查自动加载是否只加载使用过的类?

转载 作者:行者123 更新时间:2023-12-04 16:58:49 26 4
gpt4 key购买 nike

优胜 spl_autoload_register 用于在我的代码上自动加载类。例子:

<?php    
spl_autoload_register(function ($class_name) {
include 'my_class1.php';
include 'my_class2.php';
//...
include 'my_classN.php';
});

$obj = new MyClass1();
?>

如果我只使用 class MyClass1 会怎样在我的代码中,是否自动加载加载所有文件或只是 my_class1.php ?
提前致谢。

编辑:不要使用上面的代码。现在我使用 @Alex Howansky's带有 PSR-4 自动加载功能的代码 specifications .

注意:如果类位于相对于 basedir ( see examples ) 的子目录中,则自动加载需要使用命名空间。

最佳答案

使用此代码,第一次引用任何类时,它将加载每个类。这会起作用,但几乎可以肯定不是您想要的。在自动加载器中,您通常只想加载一个包含 $class_name 引用的类的源文件。 .像这样的东西:

spl_autoload_register(function ($class_name) {
$filename = '/path/to/classes/' . $class_name . '.php';
require_once $filename;
});

如果您的源文件名与您的类名不匹配,或者您无法根据类名确定源文件名,这显然会变得非常困难。这就是为什么你应该使用 PSR-4命名约定。

关于php - 如何检查自动加载是否只加载使用过的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51954059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com