Эффективность для включения файлов функций (в PHP)

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

Например, прямо сейчас у меня есть все свои файлы в названном файле include.php. Но был бы, это быть более мудрым иметь включать файл включает как:

<?php
 include('/functions/user.php');
 include('/functions/admin.php');
 include('/functions/content.php');
 include('/functions/nav.php');
 include('/functions/database.php');
 include('/functions/other_junk.php');
?>
11
задан Jacob Relkin 21 January 2010 в 03:25
поделиться

5 ответов

Определенно отделите их для ремонтопригодности. Я сомневаюсь, что Performance будет страдать вообще, но даже если он делает (просто нечестивый бит), вы лучше откроете для пишущего, читаемый код.

20
ответ дан 3 December 2019 в 03:35
поделиться
-

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

Я бы определенно упростил, если вы распались как единомышленники / классы в свои собственные файлы.

3
ответ дан 3 December 2019 в 03:35
поделиться

С точки зрения ремонтопригодности, обычно лучше отделить ваши функции в связанные группы. (Как вы показали выше, user.php будет только функциями, связанными с пользователем).

Вы должны иметь только файл, который имеет все из них, включает, что если вы знаете, что вам понадобятся все включенные файлы каждый раз, когда вам нужно включить любой файл. В противном случае он поражает целью этого файла «Catch-All».

2
ответ дан 3 December 2019 в 03:35
поделиться

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

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

2
ответ дан 3 December 2019 в 03:35
поделиться

У меня есть список включений в центральном файле .Config.

Для всех классов ООП, хотя я использую Autoload -> Я знаю, что это немного медленнее, но это экономит, чтобы включить их, как я делаю новый класс. И они загружены только по мере необходимости.

Кроме того, включают в себя быстрее, чем включить_once, так как он не должен проверять, был ли файл уже включен.

0
ответ дан 3 December 2019 в 03:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: