class core {
function __construct() {
$this->mysql = new mysqli('localhost','root','root','db');
}
function display() {
$display = new Display();
$display->mysql = &$this->mysql;
return $display;
}
}
}
сделать класс БД одиночкой, или у Core завести статический метод который будет инициализировать обьект БД и отдавать его, или вооще сделать ваш Core одиночкой, и тогда он станет одним большим реестром , и сможет быть получен любым обьектом вашего приложения, или сделать ваш Core по типу DI и передавать его куда надоДа вопрос в другом, можно ли как-то переложить сохранение ссылки на класс, с Core на Display
если у вас не php4, не пишите "= &", в php5 объекты передаются по ссылке по умолчаниюPHP:$display->mysql = &$this->mysql;
я все сходу пришедшие в голову варианты перечислил, пусть выбираетSokil.Dmytro
Статика зло, и одиночки в большинстве случаев тоже.
В ZF абаптер по умолчанию получается как Zend_Db_Table_Abstract::getDefaultAdapter(); Как правильно тут заметили, не один из лучших вариантов, но все же вариант.Что-то я понять не могу как у core завести статик метод который отдаст ссылку на класс бд? это же опять таки через глобалс реализуется?
class Core
{
private static $_db;
public static function getDB()
{
if(empty(self::$_db)) self::$_db = new DB();
return self::$_db;
}
}