Хорошей практикой является абстрагирование вашего кода в куски, которые в вашем случае имеют единственную цель: объект конфигурации и обработчик аутентификации.Это связано с принципом KISS , который определяет простоту конструкции.В данном случае: простота в коде.Когда вы смешиваете код, как вы описываете, ваш код становится более сложным, потому что он делает больше вещей.
Поначалу это может показаться не сложным, но в конечном итоге такой дизайн приводит к сложному кодуНапример: что если другой разработчик присоединится к вашей команде?Вам нужно будет добавить другой конфиг и условия, чтобы выбрать правильный конфиг.Это также имеет место при работе с различными средами (разработка / производство).А что если в некоторых случаях вы не хотите использовать обработчик аутентификации?Возможно, вы выполняете действие, которое не требует аутентификации, или еще лучше: когда аутентификация нежелательна.Больше кода, больше сложности.
Создавая фрагменты кода, будь то класс, функция или включение, вы используете слабую связь .Это означает, что куски не знают друг о друге, но они могут взаимодействовать.Это взаимодействие обычно выполняется путем предоставления обработчику аутентификации объекта конфигурации, который он может использовать, вместо того, чтобы позволить обработчику решать, какую конфигурацию он использует.Это называется внедрение зависимостей и считается очень хорошим способом развязки вашего кода.
Во-вторых, код качества в основном документирует себя .Допустим, мне нужно работать с вашим кодом, я не знаю, что включение файла конфигурации действительно выполняет аутентификацию.Я могу потратить минуты, может быть часы, пытаясь выяснить, почему создается сеанс, когда, глядя на код, кажется, ничто не указывает на это.
В вашем примере я использовал бы что-то вроде этого:
<?php
include 'config.php'; // contains function that returns config object/array
include 'auth.php'; // contains functions for authentication
// determine environment, based on server variables (ip, script path, etc)
$environment = getEnvironment($_SERVER);
// get config based on environment
$config = getConfig($environment);
// see if authentication is needed
if (needsAuthentication()) {
// perform authentication based on request variables (eg: submitted form fields)
$auth = new auth();
$auth->doAuth($config, $_REQUEST);
}