需要时自动加载函数/类库

时间:2009-07-30 19:45:31

标签: php function autoload

首先,一点背景。我工作的公司使用大量函数/类库,它包含在每一页上。成千上万行函数,其中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,因为它共享函数的前缀)

1 个答案:

答案 0 :(得分:4)

我不相信有一种方法可以自动加载功能。有些人在SitePoint forums上对此进行了争论。

我认为这将是一个很棒的补充,因为它会让你减少数量。

我采用这种方法加载我的函数,非常类似于CodeIgniter:

每当我去使用一组函数时,我都会调用一个库(“html”)函数,它将包含我将要使用的库(确保它只包含一次)。

function library($name)
{
    include($name .".lib.php");
}

可能不是你要找的答案,但我就是这样做的。