Здрасте! Ситуация такова, у меня есть класс работы с базой данных, мне нужно его функции использовать в другом классе. Вот index.php PHP: <?php session_start(); include_once("engine/classes/mysql.class.php"); $db = new SafeMySql(); include_once("engine/classes/main.class.php"); $main = new MainClass(); $mode = $main->SiteMode(); if($mode) echo "HELLO WORLD"; else echo "GOODBYE WORLD"; ?> Вот класс в котором я вызываю бд: PHP: <?php class MainClass { public function SiteMode() { $mode = $db->getOne('SELECT mode FROM config WHERE id=1'); if($mode == "1") return true; else return false; } } ?> В качестве класса для работы с бд использую Этот Насколько мне известно там используется паттерн Singletone (поправьте если что не так). Понимаю, зачем он нужен, но не понимаю как теперь быть. Подскажите пожалуйста, заранее спасибо.
PHP: <?php class MainClass { public function SiteMode() { $db = new SafeMySql(); $mode = $db->getOne('SELECT mode FROM config WHERE id=1'); if($mode == "1") return true; else return false; } } Или же, если это нужно, то с помощью наследования В принципе, можно делать подключение в конструкторе класса и использовать во всех методах.
Как будет разумнее всего поступить? Наследованием или же как Вы в примере указали? Как тру кодеры делают?
Я не знаю задач вашего класса. Если работа с БД не ограничивается одним методом, то конструктор: PHP: <?php class MainClass { protected $db; public function __construct() { $this->db = new SafeMySql(); } public function SiteMode() { $mode = $this->db->getOne('SELECT mode FROM config WHERE id=1'); if($mode == "1") return true; else return false; } }