Привет всем! В общем, наблюдается такая проблема, есть класс ядра, он синглтон и вынесен в отдельный файл, после инклюда этого файла, пытаюсь получить instance, и выбивает ошибку что класс не найден. В чём может быть проблема? P/S/ C путями всё нормально, проверял. Если копирую класс вместо include() - всё прекрасно работает...
21 Янв 2011, 18:28Часть index.php где производится инициализация класса:
define('PATH', $_SERVER['DOCUMENT_ROOT']);
include(PATH.'/core/cms.php'); //<= Если сюда вставить код класса вместо инклюда, то работает
$inCore = cmsCore::getInstance();
$inCore->loadClass('page'); //страница
$inCore->loadClass('config'); //конфигурация
$inCore->loadClass('db'); //база данных
$inCore->loadClass('plugin'); //плагины
$inCore->loadClass('user'); //пользователь
Во первых в документ руте не желательно держать что то кроме index.php.
Во вторых проверь включается ли вообще файл. Сделай в нём echo и проверь отработает ли оно.
Локи, Пробовал так(странный способ, однако))): print(include(...)) выводило 1, тоесть труъ.
21 Янв 2011, 18:44Попробуй в последней строчке cms.php сделать вывод чего то, и проверь сработает ли. либо попробуй заменить слеши на DIRECTORY_SEPARATOR
21 Янв 2011, 18:48Локи, Я же выше писал, копирую ПОЛНОСТЬЮ код класса на место инклюда и работает, следственно, дело не в классе, а в инклюде...
21 Янв 2011, 18:50DarkMaster, причём тут класс вообще?.. Не тупи, я хочу узнать подключается ли файло вообще и исполняются ли в нём скрипты. Ты кстати уверен что include возвращает тру\фэлш? Я нет.
21 Янв 2011, 18:55Мануал:
<?php
$var = 'PHP';
return $var;
?>
noreturn.php
<?php
$var = 'PHP';
?>
testreturns.php
<?php
$foo = include 'return.php';
echo $foo; // prints 'PHP'
$bar = include 'noreturn.php';
echo $bar; // prints 1
?>
$bar is the value 1 because the include was successful. Notice the difference between the above examples. The first uses return() within the included file while the other does not. If the file can't be included, FALSE is returned and E_WARNING is issued.