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

Хочу сделать более универсальным компонент, чтобы его без изменений в коде можно было бы применять на нескольких сайтах. В компоненте встречаются обращения к функциям модели, которая может отсутствовать на сайте. Какие есть грамотные решения обойти эти вызовы, если модели не существует? Очень не хочется создавать модель-заглушку.




$model = new MyModel;

if($model) {

 // твой код

}



не?

В этом случае имеем ошибку "include(MyModel.php) No such file or directory"


if (is_file(Yii::getPathOfAlias('application.models.ModelName').'.php')) {

    // код

}

Можно пример "универсального компонента"? А то по описанию он какой-то не универсальный получается.

Werewolf, спасибо, то что нужно!

iGrog, компонент - форматтер, преобразующий вики-разметку в html. Писался под свой вики-движок для конкретного проекта, теперь буду его использовать на другом сайте в движке форума, для форматирования текста сообщений такой же разметкой. Но нужны будут только части преобразований, у некоторых функций нужно будет слегка изменить поведение. Форматтер собираюсь со временем дорабатывать, поэтому важно не разбивать его на "ветки", а иметь один универсальный (для всех моих проектов) код.

А почему форматтер вообще завязан на модели? о_О

Разметка ссылки на существующие и требующиеся статьи отличается, поэтому требуется запрос к БД. Ну и мелочи, вроде обработки команды вывода числа статей… Можете посоветовать для таких случаев более универсальный путь, чем прямое обращение к модели из форматтера? Буду благодарен.

Тоже появилась задача проверки существования модели.

Проверка


if(is_file(Yii::getPathOfAlias("application.models.".$modelName).".php"));

мне не понравилась, т.к. привязывается к пути к модели, он может измениться, нашел другой вариант, который меня устроил


if(@class_exists($modelName));

class_exists позволяет проверить существует ли класс с использованием __autoload, но YIIшный автолоад на несуществующие модели ругается, для этого используется @ которая отключает ворнинги и нотайсы для вызываемой функции (и всех в ее стеке вызовов).