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

2023-12-21

首先,介绍一下背景。我工作的公司使用massive函数/类库,它包含在每个页面上。成千上万行函数,其中 90% 甚至可能不会在页面上调用。

为了稍微减轻服务器负载,我一直在尝试更智能的库设置。为此,我将整个文件分成分类库文件(即 sql.functions.php、date.functions.php 等)。

不幸的是,包含每个页面上的每个文件根本没有帮助,并且有选择地包含文件几乎是不可能的并且非常容易出错。

我正在寻找类似于 PHP 的设置___autoload()函数,如果启动未知类,它会自动搜索特定命名的文件,并尝试找到它。

<?php
  function ___autoload($class_name) {
    require_once($class_name.'.class.php');
  }
?>

但是,该函数不适用于函数调用,仅适用于类。

当调用未定义的函数时(即,有没有办法指示 PHP)html_insert_button();),自动查找并包含命名函数库?

(在上述情况下,html_functions.php需要加载,因为它共享函数的前缀)


不幸的是,我不相信有办法自动加载函数。网上也有人争论这个问题SitePoint 论坛 http://www.sitepoint.com/forums/showthread.php?t=587511.

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

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

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



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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要时自动加载函数/类库 的相关文章

  • 如何获取与 PHP 中的日期数组相比最接近的日期

    这个帖子 https stackoverflow com questions 11012891 how to get most recent date from an array of dates几乎为我回答了这个问题 但我有一个特定的需求
  • Php 会话标头已经发送错误[重复]

    这个问题在这里已经有答案了 可能的重复 php 标头已发送错误 https stackoverflow com questions 3319207 php headers already sent error 我已附上我的代码 该代码用于
  • InvalidArgumentException 与 UnexpectedValueException

    我应该什么时候使用无效参数异常 http www php net manual en class invalidargumentexception php什么时候意外值异常 http www php net manual en class
  • exec()、shell_exec()、curl_exec() 的安全漏洞

    有时 我会使用 exec shell exec 和curl exec 以下是典型用途 假设其中有 PHP 变量 即第一个变量中的 html 用户有可能修改其内容 从安全漏洞的角度来看 我应该关注什么 escapeshellcmd 和 esc
  • 如何对数字进行排序? [复制]

    这个问题在这里已经有答案了 下面是代码 Is the sortNumber对数字进行排序的函数 a 和 b 是什么意思以及为什么存在 为什么sortNumber in n sort sortNumber 没有指定任何参数a and b Ja
  • 使用 shell_exec 将 PHP 转换为 Powershell

    如果我运行 output shell exec powershell get service dhcp 我得到了 dhcp 服务的完美输出 显示正在运行 但如果我运行 output shell exec powershell get use
  • Doctrine 不会在 MySQL 中生成跨数据库外键约束

    我有两个表 db1 Contact 和 db2 Recipient 每个收件人都应该是联系人 因此我在 db1 Contact ContactID 字段上的两个表之间设置了外键 我在 Recipient php 中使用以下注释表示这一点 O
  • 使用 chr + rand 生成随机字符 (A-Z)

    我使用以下命令生成 A Z 的随机字符 但它偶尔会生成 符号 知道如何防止这种情况吗 也许字符范围不正确 letter chr 64 rand 0 26 用这个就更方便了 大写 letter chr rand 65 90 小写 letter
  • 简单 php 脚本找不到对象错误

    每次我点击提交按钮在网页中处理此代码时 它都会转到 未找到对象 404 错误 页面 它发生在我的一些脚本中 我不知道问题的根源是我的本地主机 Xampp 还是我的代码 if isset POST submit require dbc php
  • 通过 PHP CURL 添加 Google 联系人

    我已经成功地通过 Zend Framework 和 PHP 将联系人添加到 google 我也希望能够通过 CURL 来做到这一点 有人有关于如何执行此操作的良好教程吗 我终于能够通过 CURL 和访问令牌来做到这一点 首先 我要说的是OA
  • 句子中模糊的电子邮件地址

    我正在输出日志消息 需要隐藏其中的电子邮件地址 日志消息可能如下所示 A lead was saved for email protected cdn cgi l email protection Date 11th December 20
  • 如何解码这个 JSON 字符串?

    这是我从 feed finder url 中得到的字符串 JSON 编码 updated 1265787927 id http www google com reader api 0 feed finder q u003dhttp itca
  • 找时间通过 PHP 执行 MySQL 查询

    我在互联网上看到过这个问题 here http www phpbuilder com board showthread php t 2100256 and here http answers yahoo com question index
  • CodeIgniter 控制器构造函数

    我对 codeigniter 很陌生 我想知道控制器中构造函数的含义是什么 我在 codeigniter 教程中看到以下代码 class upload extends CI Controller function construct par
  • 如何在按钮上执行mysql [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions PHP 单击按钮时如何执行 SQL
  • Laravel Redis 配置

    我目前正在使用 Laravel 和 Redis 创建一个应用程序 几乎一切都工作正常 我按照文档中的说明扩展了身份验证 用户可以订阅 登录 注销 我可以创建内容 所有内容都存储在 Redis 中 但我有一个问题 我无法运行 php arti
  • 为什么 count 比 $count 差

    我只是在查看不同问题的答案以了解更多信息 我看到一个answer https stackoverflow com a 4891402 429850这表明在 php 中编写这样的做法是不好的做法 for i 0 i
  • 动态重新定义 PHP 类函数?

    我试图弄清楚如何动态导入大量 PHP 类函数 例如 class Entity public function construct type require once type functions php person new Entity
  • Ace Editor 自动完成和多种语言

    如何为 Ace 编辑器创建自动完成功能以及如何突出显示 php 中的 html javascript 和 csshttp ace ajax org http ace ajax org
  • snappy wkhtmltopdf 包装器将生成的 html 文件发送到浏览器

    我像鼹鼠一样用谷歌搜索 但找不到正确的方法 我正在使用 WKHTMLTOPDF Wrapper Snappy 创建 PDF 如何将使用generateFromHtml方法生成的pdf直接发送到浏览器 这就是我想做的 header Conte

随机推荐

  • jQuery 和伪元素

    我尝试动态更改 CSS 中定义的元素的位置 after 使用这个 function div after css top 20px 但这不起作用 有什么方法可以改变位置吗 你不能 内容创建者 after or before不是 DOM 的一部
  • 如何使用 docker-compose 而不是使用 docker 桥从 docker 容器连接到 localhost:9092

    我正在我的上运行 Kafka 服务器本地机器在端口 9092 上 我正在运行一项服务使用 docker compose 的 docker 容器需要向kafka服务器发送消息 我尝试使用 localhost 和 IP 在服务代码中编写我的生产
  • 如何生成表示 rrule 对象的人类可读字符串?

    我的应用程序允许用户定义对象的调度 并将它们存储为 rrule 我需要列出这些对象并显示类似 每日下午 4 30 的内容 有什么可用的东西可以 漂亮地格式化 rrule 实例吗 您只需提供一个 str 方法 每当需要将对象呈现为字符串时就会
  • SQLite 返回日期超过一周的记录

    我正在为图书库制作一个程序 在 sqlite 数据库中有一个图书表 其中包括该书上次取出的日期 我需要一个查询来显示过期的书籍 到目前为止我的代码如下 def findOverdueBooks event findRecords c exe
  • NuxtJS分布式静态页面生成

    有没有办法将静态页面生成过程拆分到多台机器上 我目前正在使用 NuxtJS 静态生成约 150k 页面 生成这些页面需要相当长的时间 约 1 小时 如果您已经在使用有效负载密钥 https nuxtjs org docs configura
  • 如何读取PHP中的注释块?

    我正在做一些自制的自动化文档 因为我有一个布局不是很标准的代码库 我想知道最好的方法是读取 PHP 文件并获取注释块的内容 我能想到的唯一方法是打开文件并逐行读取它 但我认为也许有一些内置的魔法可以为我解析文档 类似于反射函数 每个文件的基
  • Android:使用 1 个活动的主/详细流程(双窗格)

    据报道安卓指南 http developer android com guide practices tablets and handsets html 双面板可以通过两种方式实现 多个片段 one活动 多个片段 multiple活动 我正
  • 在 Visual Studio 2015 中使用 v90 (VS2008) 平台工具集

    是否可以 以及如何 使用 VS2015 IDE 使用编译器 链接器 STL 以及 VS2008 附带的所有其他内容来构建本机 C 项目 我想做的事情叫做 C 本机多目标 众所周知 例如VS2012 允许对 C 项目使用 VS2008 v90
  • 使用nodeValue从domelement打印html内容

    我有 html 格式的图像 我将其解析为 DOMDocument 并开始使用它 doc new DOMDocument doc gt loadHTML article header imgs doc gt getElementsByTagN
  • 如何制作Photoshop描边效果?

    我正在寻找一种以编程方式重新创建以下效果的方法 给出输入图像 输入http www shiny co il shooshx ConeCarv q input png http www shiny co il shooshx ConeCarv
  • asp net core app出现MSB3277怎么办

    我正在使用引用 EntityFrameworkCore 2 1 3 包的数据库项目 但 AspNetCore App metapackage 包含 EntityFrameworkCore 2 1 2 引入我的数据库项目后 我收到此 msbu
  • 如何使用 Networkx 包显示更好分离的网络?

    我使用创建了一个图形对象pytextrank像这样的包 import pytextrank Some steps and calculations graph ranks pytextrank text rank path stage1 我
  • 如何测试存储库中标记为@Modifying的方法?

    例如我有 public interface CrudUserRepository extends JpaRepository
  • 使用 Active Directory 集成身份验证向 Azure Sql 数据库添加具有特定权限的新用户

    我有一个带有两个数据库的 Azure SQL Server 我尝试对其使用 Azure Active Directory 集成身份验证 其中一个数据库至关重要 大多数用户只需要被授予对此数据库的 读 访问权限 要添加具有 读者角色 的新用户
  • WCF 客户端错误:“未指定安全令牌颁发者的地址”

    我从 WCF 客户端收到以下错误 未指定安全令牌颁发者的地址 必须在目标 http site com TLAPI svc 的绑定中指定显式颁发者地址 或者必须在凭据中配置本地颁发者地址 我正在尝试连接到 SharePoint 服务应用程序
  • std::string::find 在 C++ 中未按预期工作

    我试图验证输入字符串中是否存在特定字符串 如果是 则根据找到的字符串执行某些操作 但似乎无论如何它总是在做第一个任务 if inputString find str1 gt 0 do something else if inputStrin
  • g++ 实现如何处理这种情况?

    这是一个后续问题this one https stackoverflow com questions 10002082 typecasting with virtual functions 考虑这个例子 include
  • Google 登录,数据库端

    我读过有关使用 Google 处理登录的信息这个网站 https developers google com accounts docs OAuth2Login 但它并没有很好地解释数据库应该发生什么 通常 对于数据库中的用户帐户 您会有类
  • 为什么我不能将变量传递到 PHP 中的包含文件中?

    我以前也遇到过这个问题before https stackoverflow com questions 1601348 passing php variables to an included file没有真正的解决方案 又出现这种情况了
  • 需要时自动加载函数/类库

    首先 介绍一下背景 我工作的公司使用massive函数 类库 它包含在每个页面上 成千上万行函数 其中 90 甚至可能不会在页面上调用 为了稍微减轻服务器负载 我一直在尝试更智能的库设置 为此 我将整个文件分成分类库文件 即 sql fun