首先,一点背景。我工作的公司使用大量函数/类库,它包含在每一页上。成千上万行函数,其中90%可能甚至不会在页面上调用。
为了减轻服务器负担,我一直在尝试更智能的库设置。为此,我将整个文件拆分为分类库文件(即sql.functions.php,date.functions.php和其他文件。)
不幸的是,在每个页面上包含每个文件都没有任何帮助,选择性地包含文件几乎是不可能的,而且非常容易出错。
我正在寻找的是一个类似于PHP ___autoload()
函数的设置,它会在启动未知类时自动搜索特定命名的文件,以试图找到它。
<?php
function ___autoload($class_name) {
require_once($class_name.'.class.php');
}
?>
但是,此函数不适用于函数调用,只适用于类。
有没有办法在调用未定义函数(即html_insert_button();
)时指示PHP自动查找并包含命名函数库?
(在上面的例子中,需要加载html_functions.php
,因为它共享函数的前缀)
答案 0 :(得分:4)
我不相信有一种方法可以自动加载功能。有些人在SitePoint forums上对此进行了争论。
我认为这将是一个很棒的补充,因为它会让你减少数量。
我采用这种方法加载我的函数,非常类似于CodeIgniter:
每当我去使用一组函数时,我都会调用一个库(“html”)函数,它将包含我将要使用的库(确保它只包含一次)。
function library($name) { include($name .".lib.php"); }
可能不是你要找的答案,但我就是这样做的。