Только одна или несколько функций на файл в PHP? - PullRequest
1 голос
/ 03 ноября 2010

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

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

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

Ответы [ 4 ]

2 голосов
/ 03 ноября 2010

Вы используете OO?Если это так, то вам определенно следует хранить его по одному классу на файл и называть файлы разумно ...

class Page {
      ...
}

должен быть найден где-то вроде classes/Page.php или includes/Page.class.php или подобного.

Если у вас просто есть набор глобальных функций, вы должны сгруппировать их в файлы, например, includes/functions/general.php.

Для уточнения, ваша папка functions может иметь ...

  • array.php
  • string.php
  • form_validation.php
  • request.php
  • general.php
  • html.php

Если вы организовываете свои файлы таким образом, лучше использовать класс и сделать функции статичными, например, string::isAlphaNum($str).Это лучшая идея, потому что она вводит только один новый термин в ваше глобальное пространство имен вместо ненужного набора из них.

Если вы используете PHP 5.3, вы также можете посмотреть на пространства имен.

1 голос
/ 03 ноября 2010

Вы просто должны убедиться, что у вас установлены APC , xCache или eAccelerator .Все они предоставляют кэш для скомпилированного байт-кода PHP.

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

1 голос
/ 03 ноября 2010

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

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

0 голосов
/ 03 ноября 2010

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

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

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