Xwab
Форумыnavigate_nextПрограммирование на PHP

Проблема, подключаемый Singleton.
Сообщения
DarkMaster

Привет всем! В общем, наблюдается такая проблема, есть класс ядра, он синглтон и вынесен в отдельный файл, после инклюда этого файла, пытаюсь получить instance, и выбивает ошибку что класс не найден. В чём может быть проблема? P/S/ C путями всё нормально, проверял. Если копирую класс вместо include() - всё прекрасно работает...

21 Янв 2011, 18:28
DarkMaster

Часть 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');         //пользователь

21 Янв 2011, 18:31
Локи

Во первых в документ руте не желательно держать что то кроме index.php.
Во вторых проверь включается ли вообще файл. Сделай в нём echo и проверь отработает ли оно.

21 Янв 2011, 18:42
DarkMaster

Локи, Пробовал так(странный способ, однако))): print(include(...)) выводило 1, тоесть труъ.

21 Янв 2011, 18:44
Локи

Попробуй в последней строчке cms.php сделать вывод чего то, и проверь сработает ли. либо попробуй заменить слеши на DIRECTORY_SEPARATOR

21 Янв 2011, 18:48
DarkMaster

Локи, Я же выше писал, копирую ПОЛНОСТЬЮ код класса на место инклюда и работает, следственно, дело не в классе, а в инклюде...

21 Янв 2011, 18:50
DarkMaster

Локи, Слэши счас попробую заменить...

21 Янв 2011, 18:51
Локи

DarkMaster, причём тут класс вообще?.. Не тупи, я хочу узнать подключается ли файло вообще и исполняются ли в нём скрипты. Ты кстати уверен что include возвращает тру\фэлш? Я нет.

21 Янв 2011, 18:55
DarkMaster

Мануал:

<?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.

21 Янв 2011, 18:57
Локи

Ок, спс =) Мозг устал сейча для него. Что там со слешами?..

21 Янв 2011, 19:03
Ответить на тему