ОБСУЖДЕНИЕ

Вопрос по ООПу

21 сообщений0 просмотровОткрыта
#1
PHP

/* подгружаем классы */
spl_autoload_register(function($class){
include_once 'classes/' . $class . '.php';
});
/* инициируем основной класс */
$core = new Core(ROOT);



Вопрос, как использовать данные в родительском классе, не иклудя дочерние классы в родительском?

Объявлять наследие классов?

Передавать переменные в конструктор (new Core($dataChildClass)?

Как и что лучше?
#2
Дочерними классы станут только после наследия extends базового класса, а пока они никак не связаны можно передавать в конструктор
как
function __construct($object){
//
}
или
function __construct(MyObject $object){
//
}
#3
а если использовать синглетон? даст ли он какие либо преимущества?
#4
В данном случае нет.
#5
спасибо за подсказку)
#6
' . $class . '.php
не думаю что есть норм так подключать
#7
PowerHelper, это еще почему?
#8
LVC2, ну это можно использовать как локальную инъекцию
#9
бред
#10
как так? класс родитель ни чего не дожен знать существовании дочернего класса а тем более о его данных
#11
KpuTuK, а как на счет подгрузки данных функций, работы с ini файлами и базой данных, при использование отдельного класса для каждого модуля, через extends доступен лишь один параметр, use использовать? (версия php 5.4)
#12
PowerHelper, напиши тогда альтернативу данного решения
#13
класс родитель лишь определяет какой либо функционал например https://github.com/PositiveCode/http/blob/master/PositiveCode/Http/ServerRequest.php ты его и использовать не сможешь только через потомков. как вариант разве что хранить данные в каком нибудь контейнере например https://github.com/PositiveCode/ServiceLocator/blob/master/PositiveCode/ServiceLocator/ServiceContainer.php
#14
Registry
#15
KpuTuK, а как на счет трейтов? может в их сторону глядеть
#16
KpuTuK, глянул на твой код, так то наглядно все понятно, но твой код пойдет разве что на 5,6, т.к. use там только начинает служить каак include. наверно в моем случае выходом будет статика
#17
Альтернативу твоему костылю?
Нормально подключать!
#18
PowerHelper, покажи мне как надо нормально подключать?
#19
чего use? это обьявление использования простаранств имен.
PHP
namespace mySpace {
 function test() {}
}
// Через use 
use MySpace;
test();
// Без
MySpace/test();
#20
Не может знать, но еть такая штука как рефлексия Reflection API с помощью которой можно узнать в базовом классе о дочернем.
Страница 1 из 2 · Всего записей: 21