При создании сайта у меня всегда был только один config.php
файл с кучей констант в нем, и я включаю его в начало каждого файла PHP:
1. config.php
// config.php
$hostname = get_user();
define("HOME", "/home/$hostname/my/website");
define("DB_USER", 'username');
define("DB_PASS", 'password');
Это достаточно просто, и у меня никогда не было проблем с этим. Но Это стандартный способ обработки конфигурации на большом сайте PHP?
Я подумал, что может быть лучше содержать все конфиги в классе, например так:
2. Конфиг класс
class Config {
public $home;
const DB_USER = 'username';
const DB_PASS = 'password';
function __construct() {
$hostname = get_current_user();
$this->home = "/home/$hostname/my/website";
}
}
Но это, кажется, делает конфигурацию более сложной, потому что:
Резюме.
Я понимаю, что класс обеспечивает пространство имен, но есть ли что-нибудь более полезное в использовании конфигурации для такого класса?
Короче, это все еще прекрасно в эти дни придерживаться классического файла config.php, или есть причины, почему я обращаюсь к использованию более ООП подхода к конфигурации?
РЕДАКТИРОВАТЬ:
Я также нашел этот ответ очень полезным: https://codereview.stackexchange.com/questions/79528/standard-and-common-config-file-for-core-php-project?newreg=eb97ce022c9f4e8a98a1e2d3547b767a
Хорошо использовать файлы конфигурации для всего сайта. Обычно вы используете класс конфигурации для специфичных для библиотеки конфигураций, так что библиотека строго принимает четко определенные объекты конфигурации в качестве своей зависимости вместо массивов. В качестве бонуса вы получаете дополнительное преимущество типа подсказки параметров конфигурации.
Других решений пока нет …