Есть к примеру 3 класса
Db, Core, User
Раньше я делал так наследование
User наследовал Core, Core наследовал Db
Сказали что это не правильно в корне, что так быть не должно.
Вот и возник вопрос, как же правильно наследовать?..
Сейчас пробую вот так
class User{
public $core, $db = null;
function __construct(){
global $core, $db;
$this->core = $core;
$this->core = $db;
}
public function getTets(){
echo $this->core->coreTest();
}
}
Всё работает как нужно, но вот вопрос: Как же правильно наследовать?
Вам скорее всего щас распишут портянки про ООП и то, как вы путаете наследование с композицией/агрегацией. Если кратко по теме: наследовать только для использования стороннего кода - идея плохая (потому что связанность там, где ее быть не должно). Ваш пример уже лучше, еще лучше он станет, если вы $core и $db будете засылать через параметры конструктора, а не через global (инжект). Через параметры конструктора имеет смысл передать то, без чего класс работать однозначно не сможет. Остальное можно сетерами отдельными инициализировать.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
У меня есть, к примеру, таблица Сообщений, в которой я записываю пользователя, который оставил сообщение
Функции spl_autoload() в качестве параметра передается имя неизвестного класса, которое затем преобразуется в имя файлаДля этого имя класса преобразуется...