Добрый день, извиняюсь, скорее всего вопрос тупой, но как создать объект один раз за все время работы приложения? Есть точка входа, там хочу создать объект DataBase.
$db = new DataBase($parameters);
Во всех остальных файлах хочу чтоб можно было просто делать так:
$db->select($query);
Возможно вам нужен паттерн Singleton.
class DB {
private function __construct(){} // запрет new DB()
private function __wake(){} // запрет unserialize
private function __clone(){} // запрет clone $db;
private static $db = null;
public static function get($params) {
return self::$db ?: self::$db = new self();
}
public function setup($params) {/*...*/}
}
Использование:
DB::get()->setup($config);
...
DB::get()->select(...);
Одна из проблем этого паттерна в том, что иногда нам может понадобиться второе соединение - придётся как-то с этим бороться.
Также, по сути это создание зависимости от глобального контекста. Неочевидно, какие классы теперь зависят от DB.
Намного лучше просто создать объект и передавать его всем, кто в нём нуждается(DI).
Используйте статическую переменную класса для хранения подключения к бд и почитайте по поводу шаблона singleton
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть две табицы: category и newsНужно сделать выборку чтобы показывало 5 новостей каждой категори
Пытаясь делать курсач застрял вот на таком моменте: Вот скрин кансоли на каком месте остановилась прога: А делаю я решение системы линейных...