Здравствуйте Подскажите, пожалуйста...К примеру есть config.php: Код (Text): // Подключаемся к БД. Устанавливаем Логин, Пароль, Хост и Базу Данных!!! $DATABASE = DbSimple_Generic::connect('mysql://admin:admin@localhost/emeal'); Есть класс Navigation: Код (Text): class Navigation { function __construct(){ $rows = $DATABASE->select('SELECT * FROM navigation'); foreach ($rows as $numRow => $row) { echo $row['name'];} } Естественно код не работает, т.к. $DATABASE из класса не виден. Как из класса получить доступ к идентификатору соединения с БД? Понимаю, что можно каждый раз при создании экземпляра класс можно явно передавать идентификатор, но есть ли другой вариант? P.S.: я новичек...
Или изменить чуток класс Navigation: PHP: <?php Navigation::$database = DbSimple_Generic::connect('mysql://admin:admin@localhost/emeal'); class Navigation { public static $database; public function __construct() { var_dump(self::$database); } }; ?>
Наверное, вы просто не все исходники взяли. Вряд ли человек, написавший код, не подумал, что $DATABASE не будет виден из class Navigation.
Если не затруднит, можно пример реализации, применительно к моему случаю. P.S.: что такое синглтон в теории понимаю, но на практике пока не очень... Это я написал и он действительно не виден, проверял.
bobroff PHP: <? class DB { protected static $db_link=null; static function getInstance(){ if(!self::$db_link){ self::$db_link=DbSimple_Generic::connect('mysql://admin:admin@localhost/emeal'); } return self::$db_link; } } class Nav { function some_name(){ $db=DB::getInstance(); } } ?>