Как обрабатывать статусные сообщения на веб-сайте MVC? - PullRequest
1 голос
/ 20 марта 2011

Понятно, что вы должны использовать исключения для обработки ошибок в вашем приложении.Но стоит ли вам действительно использовать встроенные сообщения, чтобы показать их фактическому пользователю?

Если это так, вам придется интернационализировать эти сообщения, которыми все еще можно управлять.Но как насчет простой информации о состоянии, такой как «файл успешно сохранен»?Это не ошибки, очевидно, поэтому вы не можете использовать исключения для них.Как бы вы справились с этим?

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

Как насчет системы событий, где самая низкая серьезность / уровень / тип будет уведомлением, а самая высокая - фатальной ошибкой?Это возможно?

Ответы [ 2 ]

1 голос
/ 20 марта 2011

Я использую класс FlashMessage для этой цели.Он сохраняет сообщение в сеансе и отображается на следующей странице загрузки.Таким образом, во всех ваших шаблонах может быть место для отображения сообщений, и при наличии одного набора оно будет отображатьсяЗатем вы можете перенаправить и POST на любую страницу, и сообщение будет отображаться.

0 голосов
/ 20 марта 2011

Я лично делаю это на уровне шаблона.

Например ...

Контроллер:

if(UsersModel::addNewUser($username)){
  $this->set("user_added", true);
}

В шаблоне:

<?
    if(!empty($user_added)){
    ?>
        <p>User added successfully!</p>
    <?
    }
?>

Здесь также нет проблем с i18n (используя gettext), и контроллер остается открытым:

if(!empty($user_added)){
        ?>
            <p><?=_("User added successfully!");?></p>
        <?
}
...