2013-02-13 81 views
0

我有一个网站,它使用库文件lib.client.php存储在我的标准网站根目录下的php文件夹中,并包含一系列我已构建的类。__自动加载和包含文件

我将不得不在require_once这个库文件在几乎每一个页面,我可以实现这个最好的方式是什么?此外,我是否应该使用__autoload来实现这个功能的一些组合?

看到一个非常类似的问题,涉及到这个问题,但提供了一个非常具体的答案,我不能真正使用,并且在__autoload函数中查找了一下,我想为我的要求得到更详细的答案。

+0

自动加载机只对加载类有意义。通常在类和文件之间有1:1映射。否则,您需要具有类文件映射/缓存的智能解析器。如果你有一个只包含功能的脚本,这不是一个选项。 – mario 2013-02-13 00:55:10

+0

那么你会建议我分手我的文件吗? – 2013-02-13 01:01:29

+0

如果有效,为什么改变它?如果代码库足够小以保持连贯性,那么不会。但是'__autoload'然后只需要'require_once'那个文件,否则失败的未知类。这是比简单地使用require_once本身更多的代码。 – mario 2013-02-13 01:05:37

回答

1

您使用__autoload(或更好:spl_autoload_register;甚至更好:自动加载一些别人写的),如果:

  • 您有在不同的文件不同的顺序使用许多类;
  • 类分散在许多文件中;
  • 有一个严格的方法来告诉哪个类在哪个文件中。

你的情况:只要使用require_once(或重构,但我不会打扰)。

+0

在'__autoload'上使用'spl_autoload_register'的主要原因是什么? – 2013-02-13 01:02:42

+0

你可以spl_autoload_register许多功能,你只能有一个__autoload。使用原始的__autoload可能会碰到一些有自己的自动加载方案的库。 – fdreger 2013-02-13 01:08:36