Будет ли разделение включенных функций улучшать производительность PHP? - PullRequest
4 голосов
/ 20 февраля 2009

У меня есть основной php-файл с основным классом. Также в этом классе я делаю require_once ( "func.php"); который имеет много полезных функций для моего сайта.

Размер файла func.php очень большой, потому что есть множество функций для различных действий на разных страницах . Но я включаю его на каждой странице, потому что в том числе вызывается основным классом. Что мне нужно сделать для его оптимизации?

Переписать func.php в ООП и использовать в основном классе что-то вроде "$ funcs-> my_func ()"? Я выиграю какое-нибудь выступление? Функции, которые не были вызваны, не занимали бы память и процессорное время?

Или я должен переписать func.php ко многим файлам и вызвать каждый на указанной странице? Например: для «about.php» я включу «about_func.php» с необходимыми функциями. Но это не удобно, я думаю ...

Пожалуйста, помогите мне :) И извините за мой англ :)

Ответы [ 3 ]

4 голосов
/ 20 февраля 2009

Разделите его на классы oop и используйте функцию __autoload в PHP5: http://www.php.net/manual/en/language.oop5.autoload.php

Это будет загружать классы только при необходимости, и вам не нужно беспокоиться о включении всех необходимых файлов. Это не даст вам никакого выигрыша в производительности, но проще управлять небольшими файлами для одной цели, чем большим с несколькими функциями, которые не зависят друг от друга.

4 голосов
/ 20 февраля 2009
  1. Насколько велика func.php? Вы уверены, что размер является проблемой.
  2. Это похоже на вопрос производительности / оптимизации в глубине души. Вы уверены, что оптимизация оправдана? Вы измерили производительность своей страницы и доказали, что включение этого большого функционального файла связано с его медлительностью?

Я предлагаю вам ответить 1 и 2 перед тем, как продолжить. Если мотивом для вашего вопроса является более чистый дизайн и модульность, то да, я бы согласился, что разделение файла с ошибками «utils» на более мелкие файлы, которые разделяют ответственность или общую область значимости, является хорошей идеей. Если, с другой стороны, это случай преждевременной оптимизации, то лучше оставить плохой "func.php" вместе (эй, иногда нормально иметь большой общий файл утилит, если это не мешает вы).

3 голосов
/ 20 февраля 2009

У вас включен ускоритель PHP?

Поскольку они хранят в памяти «скомпилированную» версию func.php, которая должна ускорить процесс без каких-либо изменений кода.

Хотя я рекомендую ООП, это не из-за соображений производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...