0

好吧,我得到了这个oop:

abstract class TestSystemUtils {

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

}

class TestSystem extends TestSystemUtils {
protected $body;
protected $out;
function __construct() { }
public function __run() { } 
}

我有一个包含许多模块的目录,每个模块都是一个扩展 TestSystem 的类,但我不想包含所有这些模块然后在方法 __run 我创建一个 dbconnection 获取将使用的这些模块,但在这一点上 idk 是正确的“包含”这些文件的方法我可以使用 __autoload func 但是如果我应该在 TestSystem 类中调用这些类,所有模块都需要使用这两个变量“body”和“out”......好吧,什么是正确的方法去做吧?有人可以帮助我。

模块类如下所示:

class mod01 extends TestSystem { }

谢谢。

4

1 回答 1

0

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

使用 spl_autoload_register() 也是可取的,因为它比 __autoload() 更强大,并且它为您提供了一种比单个函数更好的注册自动加载器的方法。

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

于 2013-07-02T05:02:24.327 回答