将php类转换为本机类

时间:2011-04-06 12:53:21

标签: php pear

有没有办法将一组php类嵌入到php中,这样我就可以本身调用而不是每次都将这些类作为文件包括在内?我需要在本地使用它或在私有服务器上。

提前致谢:)

5 个答案:

答案 0 :(得分:6)

如果我理解正确,您可能想要使用__autoload()

来自@ KingCrunch的注释:

  

__autoload()函数不应该   再使用,因为如果你使用   其他库,定义一个   spl-loader,该函数永远不会调用   从那以后

所以如果坚持SPL Autoload functions会更好。

答案 1 :(得分:1)

对于懒惰,您可以使用php.ini设置:

 auto_prepend_file = /usr/share/php/allmypredefinedclasses.php

在运行任何脚本之前包含auto_prepend_file。听起来这就是你想要的。它可以很好地定义类或函数,或者只是一个自动加载器。但是你应该避免将它用于过度项目特定的功能 - 因为它会影响所有 PHP脚本。

(我个人用它来蹒跚学习一些PHP6功能..)

答案 2 :(得分:0)

只需添加php.ini的路径,它们将始终在该服务器上可用

答案 3 :(得分:0)

将没有<?php?>的每个文件的内容复制到文件classes.inc.php中,只包含此文件。

[编辑] 我不认为你需要这么多性能,因为PHP已经很快了。但是如果你真的将每个类文件都包含在每个文件中,有时只需要其中一个类,那么这不是一个坏主意。

为什么不将课程分成模块:

例如:DatabaseModule database.module.php包含类connectionqueriesresults

将所有类放在这样的组中,并将它们移到目录modules/

您可以使用自定义函数,这里有一个简单的例子:

<?php
function loadModule($name) {
    $file_path = './modules/' . $name . '.module.php';
    require_once $file_path;
}
?>

现在,您可以使用loadModule函数在每个文件中添加所需的所有模块。

我希望能帮助你。

答案 4 :(得分:0)

如果您使用的是MVC模式,例如,每次请求都会调用index.php页面,那么__autoload将是一个很好的解决方案。如果没有你可以使用'auto_prepend_file',如前所述。

希望有所帮助。