Форум → Программирование → PHP для идиотов → Не срабатывает __autoload() для родительского класса
Не срабатывает __autoload() для родительского класса
Страницы: ← Следующая страница →
-
Июль 6, 2010, 9:26 п.п., спустя 5 минут 53 секунды
профи обосрались :)Спустя 24 сек.у меня такая тема тоже была, не помню как решал. Покаж лоадер и классы -
Июль 6, 2010, 9:34 п.п., спустя 8 минут 11 секунд
function __autoload($sClass) {
echo $sClass . '<br>';
//дальше лоадер. Я думаю не важно что именно там.
классы:class Portal {
иclass Builder extends Portal {
Вызываю:$oBuilder = new Builder();
Получаю:Builder
Fatal error: Class 'Portal' not found in /home/vaseninm/dnportal/core/classes/builder.class.php on line 9 -
Июль 6, 2010, 9:37 п.п., спустя 3 минуты 3 секунды
[var]__autoload[/var] - моветон. Попробуй через [man]spl_autoload_register[/man] -
Июль 6, 2010, 9:39 п.п., спустя 2 минуты 21 секунду
а если вызвать $oBuilder = new Portal(); — срабатывает?Спустя 54 сек.стопудово дело в регистре имени файла, где лежит Portal )))Спустя 26 сек.с тебя плюсикιιlllιlllι унц-унц -
Июль 6, 2010, 9:40 п.п., спустя 1 минуту 15 секунд
у меня такая тема тоже была, не помню как решал
вру, было не так:
child extends parent
new child // не могу загрузить родителя, так как он реально отсутствует
// но вываливаюсь с ошибкой загрузки ребенка -
Июль 6, 2010, 9:45 п.п., спустя 4 минуты 39 секунд
artoodetoo, сработало. Ну плюсег держи. От алекса отрываешься?)
Дело в том, что функция автолоад вообще не срабатывет. Я специально вывожу названия классов в автолоаде.
эмм… Родитель синглтон) Можт это что то важное? -
Июль 6, 2010, 9:52 п.п., спустя 7 минут 16 секунд
хз. в принципе такие связи разруливаются через автолоадеры и неважно __autoload или spl_autoload_register
ЕСЛИ, как ты пишешь, "на других серверах работает", проблема в путях/регистре — гадалку не зовиιιlllιlllι унц-унц -
-
Июль 6, 2010, 10:14 п.п., спустя 13 минут 41 секунду
в никсах файлы Portal.php и portal.php для системы являются различными, ищи проблему с регистром символов, как сказал р2д2 - 100% что проблема в этомWork, buy, consume, die -
Июль 6, 2010, 10:50 п.п., спустя 36 минут 28 секунд
__autoload - моветон. Попробуй через spl_autoload_register
сеньк. Запустилось. 0_о -
Июль 6, 2010, 10:55 п.п., спустя 5 минут 18 секунд
SpartakuS, ну и так, чисто попутно:$oBuilder = new Builder(); // не совсем корректный вызов, так как аргументов ты не передаешь для конструктора
$oBuilder = new Builder; // более корректный
Ну а по твоему вопросу, то:
1. Регистр таки важен очень-очень
2. Если родитель синглтон, то по-идее должно сказать "КУЙ", ибо синглтон - это своего рода статический класс, но точно не уверен, ибо не пробовал такого делать. Делал синглтоном дочерний класс, ибо один хер мне два объекта (синглтоновский родитель и обычный дочерний) нахер не нужны.Спустя 236 сек.SpartakuS, да и вообще, обясни в чем тогда необходимость подключать родителя, если он и так везде доступен! Если только из-за красоты $this->method() вместо Parent::instance()->method(), то думаю это херовый выигрыш. -
Июль 6, 2010, 11:05 п.п., спустя 9 минут 55 секунд
1. Регистр таки важен очень-очень
$sClass = mb_strtolower($sClass).'.class.php';
2. Если родитель синглтон, то по-идее должно сказать "КУЙ", ибо синглтон - это своего рода статический класс, но точно не уверен, ибо не пробовал такого делать. Делал синглтоном дочерний класс, ибо один хер мне два объекта (синглтоновский родитель и обычный дочерний) нахер не нужны.
Да нормально наследуется, parent::getInstance(); и все проблемыСпустя 219 сек.Givi, по второму. Системма не моя. Только первый день с ней работаю. -
Июль 6, 2010, 11:47 п.п., спустя 41 минуту 46 секунд
Нафиг mb_? Если названия классов на инглише только?https://smappi.org/ - платформа по созданию API на все случаи жизни -
Июль 7, 2010, 12:04 д.п., спустя 16 минут 51 секунду
используйте нотацию PEAR/zf в именовании классов
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!