Практически в каждом движке сайта в корне лежит файл config.php
Понятно, это для того чтобы любой класс мог цеплять данные из этого файла. Но возникает вопрос. А как сделать данные этого файла глобальными? Чтобы при не инклюдить config.php каждый раз как объявляется новый класс?
Например:
class class1 {
function __construct() {
include 'config.php';
}
}
class class2 {
function __construct() {
include 'config.php';
}
}
Такой подход мне кажется не очень правильным.
Передавать его в класс параметром тоже кажется не очень хорошим решением:
include 'config.php';
class class1 {
function __construct($config) {
code;
}
}
class class2 {
function __construct($config) {
code;
}
}
Даже если создать класс config и объявлять его внутри других классов то инклюд все равно будет повторяться.
class config {
function __construct() {
include 'config.php';
}
}
class class1 {
function __construct() {
$config = new config;
}
}
class class2 {
function __construct() {
$config = new config;
}
}
Я так понимаю в таких конструкциях функция include_once все равно не сработает так как каждый вызов 'config.php' изолирован внутри класса.
Ну и сделать все остальные классы наследниками класса config тоже кажется моветоном.
Как же в движках сайта реализовано извлечение данных из 'config.php'?
В config.php обычно объявлен простой не глобальный массив и его переменные не доступны внутри классов. Поэтому $GLOBALS они тоже не используют.
Неужели они его инклюдят каждый раз когда он понадобится какому нибудь классу?