Методы повторного использования сообщений об ошибках - PullRequest
3 голосов
/ 04 августа 2011

Мы используем PHP 5.3 и Zend Framework для большого проекта, и я столкнулся с проблемой удобства. Мы снова и снова используем одни и те же сообщения об ошибках в разных частях приложения, например «У вас нет разрешения на выполнение этого действия». У кого-нибудь есть какие-то уникальные способы повторного использования сообщений об ошибках, чтобы нам не приходилось переписывать их снова и снова?

Моей первой мыслью было сделать что-то простое, как это:

class ErrorMessage
{
    const ERROR_NO_PERMS = 'noPerms';
    const ERROR_INT = 'int';

    protected static $_messages = array(
        self::ERROR_NO_PERMS => 'You do not have permission to complete this action',
        self::ERROR_INT      => "'%s' must be an integer",
    );

    public static get($errorCode)
    {
        if (!array_key_exists($errorCode, self::$_messages)) {
            // error
        }

        // check for translation

        return self::$_messages[$errorCode];
    }
}

Что бы вы сделали? (Имейте в виду, что мы хотели бы, чтобы это было интегрировано с ZF, поэтому мы открыты для любых идей, которые распространяются на собственные классы ZF.)

1 Ответ

5 голосов
/ 04 августа 2011

Вы также можете создавать «именованные исключения».

class PermissionException extends Exception
{
  public function __toString()
  {
    return 'You do not have permission!';
  }
}

Если у ZF есть собственные исключения, вы можете их расширить. Или вы можете расширить одно из уже доступных исключений PHP .

...