Я поиграл со своим 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, который я включаю, содержит в минимум 1000 строк кода (а некоторые строки содержат как минимум 3 команды). Я ищу решение, которое приводит к сокращению времени выполнения.
Задача ещё не решена.
Других решений пока нет …