4

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

4

1 回答 1

4

不幸的是,我不相信有办法自动加载功能。一些人在SitePoint 论坛上为此争论不休。

我个人认为这将是一个很棒的补充,因为它可以让你减少包含的数量。

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

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

函数库($name)
{
    包括($name .".lib.php");
}

可能不是您正在寻找的答案,但我就是这样做的。

于 2009-07-30T19:53:49.523 回答