Задать вопрос
@ukoHka
Всего понемногу

Как правильно проверить существует ли класс при автозагрузке?

Изучаю MVC. При проверке существования класса контролера через class_exists скрипт пытается автоматически подгрузить нужный класс. Собственно, это мне и нужно, только если автозагрузка не удалась, вываливается ошибка. А мне нужно, чтобы выполнялся else.
Код автозагрузки:
spl_autoload_extensions(".php"); 
spl_autoload_register();

Код проверки:
if (class_exists($controller_name)){
      $controller = $controller_name::getInstance();
} else {
}
  • Вопрос задан
  • 258 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
miraage
@miraage
Старый прогер
php.net/manual/en/function.class-exists.php
Второй параметр не знали?)

// EDIT

Неправильно понял задачу. Вот смотрите.

<?php

spl_autoload_extensions('.php');
spl_autoload_register();

$class = 'Foo_Bar';

if (class_exists($class)) {
  echo 'exists';
} else {
  echo 'not exists';
}


Выводит "not exists" без ошибки. Следовательно, вы в коде это не обрабатываете и пытаетесь что-то где-то делать.
Покажите текст ошибки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@yuras666
По-моему ты не разобрался с тем как работает spl_autoload_register. В документации все хорошо описано.
Далее class_exists принимает строку, потом ты у этой строки вызываешь статический метод getInstance(). Как думаешь, что тут не правильно? :)
class_exists скорее всего тебе вообще не нужна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы