Как объединить/исключить PHP включает в себя файлы классов


У меня есть несколько файлов, которые я продолжаю включать по отдельности. Я хочу просто поместить их все в один файл, чтобы уменьшить ввод-вывод файлов и просто включить один.

Обновление

В конечном итоге с помощью автопогрузчика вот php.net ссылка . Теперь мне не нужно явно включать каждый файл, и, согласно ссылке, файлы загружаются медленно.

Author: GolezTrol, 2011-06-02

3 answers

PHP проанализирует файл. PHP, вероятно, зарегистрирует классы и в любом случае проанализирует и проверит синтаксис файла. Но это все равно может быть быстрее, чем загрузка отдельных файлов. Более отдельный файловый ввод-вывод будет медленнее, хотя для этого потребуется меньше памяти, поскольку загружаются только необходимые файлы.

Я бы не беспокоился ни о том, ни о другом, потому что потребление памяти только для классов близко к нулю. Файловый ввод-вывод, вероятно, также не будет проблемой. У вас может быть кэш APC, который хранит скомпилированные версии PHP-файлов сохраняются в памяти, а если нет, то в вашей операционной системе, вероятно, будут некоторые функции кэширования, которые ускоряют загрузку часто используемых файлов.

 3
Author: GolezTrol, 2011-06-02 00:29:08

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

Если вы подумываете о создании отдельного класса, требующего(), я бы предложил сохранить ваши отдельные классы в качестве собственных файлов и иметь свой consolidate.php больше похоже на это:

<?php
    /** consolidate.php **/
    require( "class.session.php" );
    require( "class.general.php" );
?>

Что касается обработки PHP, вызов require() или include() в файле фактически не вызывает никаких методов построения объектов. Тем не менее, он включает в себя весь файл целиком. Например, в том числе session.php (2 КБ) и general.php (3 КБ) будет включать только 5 КБ. Включая все, что может значительно увеличить этот размер в зависимости от вашей базы кода.

 3
Author: Ben Roux, 2011-06-02 00:41:27

Вы абсолютно не должны помещать все свои классы в один файл, если вы их разрабатываете. Это очень затрудняет обслуживание. Отдельный файл для каждого класса означает, что вы точно знаете, куда идти, чтобы что-то изменить. И да, PHP будет тратить время на синтаксический анализ классов, которые вы не используете. Почему вы не хотите использовать автозагрузчик? Они делают все намного проще, и не похоже, что это большие накладные расходы или что-то в этом роде.

Если вы беспокоитесь об эффективности ввода-вывода, затем кэшируйте свой код.

Обращаясь к соглашениям об именовании, я предлагаю вам взглянуть на довольно широко принятый стандарт здесь:

Http://groups.google.com/group/php-standards/web/psr-0-final-proposal?pli=1

 2
Author: Jonah, 2011-06-02 00:51:42