Вот ее код:
/**
* @class kernel
* @method protect
* @type static
* @visible public
* @arg none
* @return ''
*
* Этот метод обеспечивает защиту от подделки разных
* заголовков, при помощи CURL'a
*/
public static function protect() {
if (isset($_SERVER['QUERY_STRING']) && strpos(urldecode($_SERVER['QUERY_STRING']), chr(0)) !== false) die();
$targets= array('PHP_SELF', 'HTTP_USER_AGENT', 'HTTP_REFERER', 'QUERY_STRING');
foreach ($targets as $target) {
$_SERVER[$target] = isset($_SERVER[$target]) ? htmlspecialchars($_SERVER[$target], ENT_QUOTES) : null;
}
return;
}
function __autoload($class) {
require_once (HOSTROOT.'/controller/modules/'.$class.'/'.$class.'.class.php');
}
function __construct() {
$this->parseCFG();
parent::__construct(AL_HOST, AL_USER, AL_PASSW, AL_DB);
}
HOSTROOT.'/controller/modules/'.$class.'/'.$class.'.class.php
Здесь все работает достойно, с помощью дебага проверял путь, он верный. Даже tail вывел мне последние 10 строк кода.
Но при вызове этого кода:
protected function smartyInit() {
$this->TmpLoad = new Smarty;
$conf = $this->parseCFG(true, 'smarty.ini');
return $this->TmpLoad;
}
public function debug() {
var_dump($this->smartyInit());
}
Выводит ошибку -
[Wed Jul 20 15:00:02 2011] [error] [client 127.0.0.1] PHP Fatal error: Class 'Smarty' not found in /usr/local/www/apache22/data/test.ru/alex12060/model/kernel.class.php on line 275
В чем может быть подвох?
Спустя 16 минут, 29 секунд (20.07.2011 - 14:25) Winston написал(а):
Цитата (alex12060 @ 20.07.2011 - 14:08) |
SITEROOT.'/controller/modules/'.$class.'/'.$class.'.class.php |
А у тебя есть такой файл ?
SITEROOT.'/controller/modules/Smarty/Smarty.class.php
Спустя 1 минута, 30 секунд (20.07.2011 - 14:26) alex12060 написал(а):
PHPprogrammer
Цитата |
Здесь все работает достойно, с помощью дебага проверял путь, он верный. Даже tail вывел мне последние 10 строк кода. |
Спустя 4 минуты, 51 секунда (20.07.2011 - 14:31) Winston написал(а):
Цитата (alex12060 @ 20.07.2011 - 14:08) |
kernel.class.php |
Ты в этом файле создаешь объект, но из-за того, что класс Smarty не подключен выводится ошибка верно ?
Спустя 2 минуты, 30 секунд (20.07.2011 - 14:34) alex12060 написал(а):
PHPprogrammer
Да, я хочу создать экземпляр класса Smarty в свойство $TmpLoad. Но файл сам физически не подключен в класс.
Да, я хочу создать экземпляр класса Smarty в свойство $TmpLoad. Но файл сам физически не подключен в класс.
Спустя 11 минут, 37 секунд (20.07.2011 - 14:45) Winston написал(а):
Я в этих делах не силен...
Я так понял, что ты autoload прям в классе прописываешь верно ?
Может стоить попробовать spl_autoload_register?
Я так понял, что ты autoload прям в классе прописываешь верно ?
Может стоить попробовать spl_autoload_register?

Спустя 2 минуты, 10 секунд (20.07.2011 - 14:48) alex12060 написал(а):
PHPprogrammer
Ну да, ладно, я попробую сделать по другому чуточку, статичную функцию. У меня хостер просто не поддерживает spl вроде...(
Если проблема исчезнет, попробую отписаться сюда.
Ну да, ладно, я попробую сделать по другому чуточку, статичную функцию. У меня хостер просто не поддерживает spl вроде...(
Если проблема исчезнет, попробую отписаться сюда.
Спустя 1 час, 40 минут, 2 секунды (20.07.2011 - 16:28) mzcoding написал(а):
Имя класса должно совпадать с именем файла.
Спустя 3 часа, 40 минут, 9 секунд (20.07.2011 - 20:08) alex12060 написал(а):
mzcoding
...
...
Спустя 9 минут, 36 секунд (20.07.2011 - 20:17) neadekvat написал(а):
А че, __autoload можно пихать в класс? оО А зачем?
Спустя 1 час, 14 секунд (20.07.2011 - 21:18) alex12060 написал(а):
neadekvat
Я уже понял, что это была бредовая задумка
Я уже понял, что это была бредовая задумка

Спустя 11 дней, 11 часов, 59 минут, 31 секунда (1.08.2011 - 09:17) linker написал(а):
Если __autoload() пихается в класс или переименовывается my_autoload(), то необходимо использовать spl_autoload_register() иначе данную функцию необходимо использовать так, как это описано в мануале php.