Оптимизация php кода (а именно include)

компьютеры программирование php оптимизация

22:44 18.07.2010

Разрабатываю систему, получается примерно такая структура:


while(true){
if($block==1){
// очень много кода
}

if($block==2){
// очень много кода
}

// ...

if($block==n){
// очень много кода
}
}


Цикл выполняется бесконечно, пока не выполнит свою работу. Надо как-то сфабриковать участки "очень много кода". Есть такие варианты:
1) заключить в функции. Но есть недостатки - очень громоздкая функция получится + должно быть видно много переменных извне.
2) поместить их в отдельные файлы, и инклудить их каждый раз. Но возникает вопрос - если цикл выполняется долго, и каждый раз будет инклудиться файл, это наверное сильно скажется на производительности?
3) весь код будет в этом же файле - этот вариант использовать не хочу, т.к. сильно понизится понимаемость кода, файл получится как "Война и мир".

Подскажите, что лучше выбрать, из первых двух либо предложите лучшее что нибудь :)
Ответы:
Раз вы собираетесь использовать цыкл для большого участка кода то вы вероятно плохо программируете систему. Подумайте над этим.
Из предложенных вариантов я бы выбрал инклюд.
использоват ООП
Не надо бояться больших файлов. Я видел скрипты по 200 кБайт. Если Ваш файл корректно написан, то он остаётся удобочитаемым при любом размере. Если Вы используете IDE, то никогда в нём не запутаетесь. Также я думаю, что каждый из блоков "очень много кода" можно сильно оптимизировать, потому что в PHP НЕ БЫВАЕТ длинных непрерывных кусков кода, любой код можно свернуть в циклы, поделить на классы или функции.
во-первых, юзайте switch
во-вторых, файл не инклюдится постоянно, достаточно написать require_once. Интерпретатор один раз забирает все файлы
проще:
1 большой файл работает быстрее чем 10 маленьких.
Подобные проблемы обычно возникают при плохо проработанной архитектуре системы. В этом случае следует переработать систему.
Если это невозможно или громоздкость вызвана иными причинами:
1. правильно скомбинировать код в функции, убрать таким образом повторяющиеся участки кода.
2. возможно стоит использовать include_once и require_once вместо include и require соответственно
3. Любая IDE позволяет сворачивать блоки кода и быстро смотреть список функций, переменных, классов


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.