Где поместить мои пользовательские системные исключения в Zend Framework - PullRequest
2 голосов
/ 02 апреля 2012

Мне нужно создать несколько базовых классов исключений и наследовать от них.

Я вижу два подхода:

1. Create folder 'Exceptions' in library and use standard autoload mechanism
    /library
      /Exception/
        Base.php
        InvalidParameter.php
2. Just declare exception classes in model, that uses it.

Есть ли лучший более "зенд-ишный" подход?

Ответы [ 2 ]

4 голосов
/ 02 апреля 2012

Если вы загляните в библиотеку Zend, они обычно делают

/library
   Exception.php
  /Exception/
    InvalidParameter.php

И InvalidParameter Class будет выглядеть примерно так, как Exception_InvalidParameter расширяет Exception. Это очень похоже на то, что вы предложили в варианте 1. Я вообще люблю, чтобы все мои собственные классы библиотеки были в /library/custom

0 голосов
/ 02 апреля 2012

Цель создания определенных классов исключений - связать их с некоторыми конкретными функциями (база данных, сеанс и т. Д.). Если ваша функциональность может быть полностью описана в одном классе, например

Class AdminController extends Zend_Controller_Action
{

public function loginAction()
{
  throw new LoginException('Failed login');
}
}

Class LoginException extends Exception {
}

Обратите внимание, что оба класса находятся в одном файле AdminController.php. Этот подход более быстрый, поскольку для загрузки LoginException не требуется автозагрузка, поскольку она находится в том же файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...