if (class_exists($storage) || class_exists($storage = 'BL_Sessions_StorageAdapter_' . $storage))
/// …
если ловить исключение - то нужно разбивать на кусочки..
лана, забейте, не такая уж это и проблема
Форум → Программирование → PHP для идиотов → Не бросать искл. при class_exists (spl_autoload_call)
Страницы: ← Предыдущая страница →
16 июня 2010 г. 16:44, спустя 11 минут 13 секунд
if (class_exists($storage) || class_exists($storage = 'BL_Sessions_StorageAdapter_' . $storage))
/// …
16 июня 2010 г. 17:02, спустя 17 минут 49 секунд
При class_exists автолоад нужен, но эксепшен не нужен.
16 июня 2010 г. 17:15, спустя 12 минут 44 секунды
17 июня 2010 г. 5:01, спустя 11 часов 46 минут 28 секунд
2 сентября 2010 г. 12:59, спустя 77 дней 2 часа 37 минут
/**
*
* @param string $class
* @param string $file
* @return boolean
*/
protected function loadClass($class, $file)
{
if (file_exists($file)) {
require $file;
} elseif ($this->doesAutoloadCalled()) {
throw new Loader_Exception(sprintf('Missing file "%s" for class "%s"', $file, $class));
} else {
return false; // (class|interface)_exists called
}
if (!class_exists($class, false) && !interface_exists($class, false)) {
if ($this->doesAutoloadCalled()) {
throw new Loader_Exception(sprintf('Missing class "%s" in file "%s"', $class, $file));
} else {
return false; // (class|interface)_exists called
}
}
return true;
}
protected function doesAutoloadCalled()
{
return !count(array_filter(debug_backtrace(), function($line) {
return in_array($line['function'], array('class_exists', 'interface_exists'));
}));
}
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!