При создании сайта у меня всегда был один 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.
- Мне нужно использовать сочетание свойств и констант класса, потому что некоторые части конфигурации устанавливаются динамически.
- Весь код не так прост.
Сводка.
Я понимаю, что класс обеспечивает пространство имен, но есть ли что-нибудь более полезное в размещении конфигурации в таком классе?
Короче говоря, все еще прекрасно в наши дни придерживаться классического файла config.php , или есть причины, по которым я обращаюсь к использованию более ООП подхода к конфигурации?
РЕДАКТИРОВАТЬ:
Я также нашел этот ответ очень полезным: https://codereview.stackexchange.com/questions/79528/standard-and-common-config-file-for-core-php-project?newreg=eb97ce022c9f4e8a98a1e2d3547b767a