我玩弄了我的 PHP 脚本,一旦我对包含进行了修改,执行时间就减少了 25%。
我的旧包括:
include_once "somefile.php";
我的新的是:
include './somefile.php';
因此,我想尝试将我所有的 include_once 转换为包含,如果我不小心,我可能会不必要地包含同一个文件两次。
我有文件设置,它们代表如下所示:
index2.php file: file user accesses:
<?php
//index2.php
include "../relative/path/to/includes/main.php";
anythingelse();
exit();
?>
index.php file: file user accesses:
<?php
//index.php
include "../relative/path/to/includes/main.php";
anything();
exit();
?>
core.php file: Loads every other file if not loaded so all functions work
<?php
include_once "../relative/path/to/includes/db.php";
include_once "../relative/path/to/includes/util.php";
include_once "../relative/path/to/includes/logs.php";
//core - main.php
function anything(){
initdb();
loaddb();
getsomething();
makealog();
}
function anythingelse(){
initdb();
loaddb();
getsomething();
getsomething();
makealog();
}
?>
db.php file: helper file
<?php
//database - db.php
function initdb(){
//initialize db
}
function loaddb(){
//load db
}
?>
util.php file: helper file
<?php
//utilities - util.php
function getsomething(){
//get something
}
?>
logs.php file: helper file
<?php
//logging - logs.php
function makealog(){
//generate a log
}
?>
我设置的想法是 index.php 和 index2.php 是用户可以直接访问的文件。核心文件是所有功能的根目录,因为它加载剩余的 php 文件,其中包含核心文件所需的功能,然后由 index.php 和 index2.php 文件使用。
就目前而言,解决方案是让我替换:
include_once "../relative/path/to/includes/db.php";
include_once "../relative/path/to/includes/util.php";
include_once "../relative/path/to/includes/logs.php";
什么都没有,在 index2.php 和 index.php 中,我在 include 下添加了这些行:
include '/absolute/path/to/includes/db.php';
include '/absolute/path/to/includes/util.php';
include '/absolute/path/to/includes/logs.php';
问题是,我有几十个文件我必须这样做,我想知道是否有另一种方法可以解决这个问题而不将所有函数合并到一个文件中,因为实际上,我包含的每个 PHP 文件都包含在至少 1,000 行代码(有些行至少包含 3 个命令)。我正在寻找一种能够缩短执行时间的解决方案。