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

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

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

 <?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'); ?> в <?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'); ?> в <?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'); ?> в <?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'); ?> в <?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'); ?> в <?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'); ?> в <?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'); ?> 

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

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

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

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

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

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

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

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

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

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