PSR-1 2.3 Правило побочных эффектов

У меня есть вопрос, касающийся базовых стандартов кодирования PHP PSR1. PSR 1 Правило 2.3 гласит:

Правило 2.3 Побочные эффекты

Файл ДОЛЖЕН объявлять новые символы (классы, функции, константы,
и т. д.) и не вызывают никаких других побочных эффектов, или СЛЕДУЕТ выполнять логику со стороны
эффекты, но НЕ ДОЛЖНЫ делать оба.

Фраза «побочные эффекты» означает выполнение логики, не связанной непосредственно с
объявление классов, функций, констант и т. д., просто из включения файла .

«Побочные эффекты» включают, но не ограничиваются: генерирование вывода, явное
использование «require» или «include», подключение к внешним службам, изменение ini
настройки, испускание ошибок или исключений, изменение глобальных или статических переменных,
чтение или запись в файл и т. д.

Может ли кто-нибудь дать мне аргумент, который поддерживает использование этого правила? Или объясните преимущества этого правила и почему это важно или хорошая идея для реализации. Это поможет мне поддерживать полную реализацию PSR 1 и сделать хороший пример.

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

Это делает его предсказуемым и заставляет вас сохранять свою логику в методах класса и неявно.

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

PSR-1 в значительной степени следует за тем, что все уже делали. Если вы чувствуете необходимость выполнять логику в том же месте, где определен класс, то, скорее всего, будет лучшее место или подход.

Наконец .. не принимайте PSR-1 ради. Если у вас есть веская причина не следовать правилам в определенных местах, нарушите правила. Это не законы. Здравый смысл господствует.

Источник: Я один из участников этого документа.