Php 使用spl_autoload_寄存器加载扩展到另一个类的类

Php 使用spl_autoload_寄存器加载扩展到另一个类的类,php,Php,好吧,我得到了一个糟糕的结果: abstract class TestSystemUtils { abstract public function __run(); /* utils funcs */ } class TestSystem extends TestSystemUtils { protected $body; protected $out; function __construct() { } public function __run() { } } 我得到了一个包含许

好吧,我得到了一个糟糕的结果:

abstract class TestSystemUtils {

abstract public function __run();
/* utils funcs */

}

class TestSystem extends TestSystemUtils {
protected $body;
protected $out;
function __construct() { }
public function __run() { } 
}
我得到了一个包含许多模块的目录,每个模块都是一个扩展TestSystem的类,但我不想包含所有这些模块,然后在方法uu run中,我建立一个数据库连接,获取将要使用的模块,但在这一点上,idk是“包含”这些文件的正确方法,我可以使用uu autoload func,但idk如果我应该在类TestSystem内部调用这些类,或者不调用这些类,所有模块都需要使用这两个变量“body”和“out”。。。那么正确的方法是什么?有人可以帮我

模块类如下所示:

class mod01 extends TestSystem { }

谢谢。

对于大多数情况,您应该使用JIT(即时)加载。 这样,您将只加载和编译要使用的代码。项目越大,影响就越大

还建议使用spl_autoload_register(),因为它比u autoload()更强大,而且它提供了一种注册自动加载器的更好方法,而不是一个单独的函数

总之: 1) 不要包含/要求在该脚本运行中不会使用的代码。
2) 在类中封装尽可能多的内容,并让自动加载器根据需要包含这些内容。

您能给我举个例子吗?