Существуют ли стандарты кодирования для позиции Включить и Требовать? - PullRequest
0 голосов
/ 25 июня 2018

В последнее время я более внимательно следил за стандартами кодирования и пытался убедиться, что я следую передовым методам.Работая с лезвием Laravel, я всегда помещал такие выражения, как require(file) и include(file) в начало моего кода.Поместить его наверх было, в первую очередь, тем, как я узнал о том, как мне их добавить, поскольку большинство включенных или требуемых файлов обрабатываются в коде, в котором я их использую.

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

if(condition){
    include(file)
    ...
}

Мне было интересно, будет ли это соответствовать обычным стандартам кодирования или это противоречит принятой практике?

1 Ответ

0 голосов
/ 25 июня 2018

До того, как в PHP были пространства имен, тогда включение include / require в верхнюю часть скрипта, безусловно, означало, что вы увидите любые коллизии пространства имен на ранних этапах тестирования.Недостатком этого было то, что это может привести к снижению производительности при работе с кодом, который может и не потребоваться.

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

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

Сказав это, побочный эффект от явного размещения всех ваших операторов include / require в верхней части файла делает егоПроще управлять зависимостями и меньше вычисляемых значений в области видимости - следовательно, у программистов меньше возможностей использовать вычисленные пути, и намного проще проводить аудит безопасности кода для обнаружения ужасных вещей, таких как:

include($_GET['function'] . "/index.php");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...