До недавнего времени я делал, как показано ниже, для создания и выдачи пользовательских исключений:
Файл: Myclass.php:
namespace myapp\libraries;
class myclass {
setEmail($email) {
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
throw new myClassException("Email not valid");
}
}
}
class myClassException extends \Exception {}
Хорошо, так что это работает хорошо, и их легко поддерживать и строить при условии, что пользовательские исключения всегда существуют в одном и том же файле и определены после класса, который выдает исключения.
Вопрос: Что говорят текущие соглашения PHP и здравый смысл?
Вот решения, о которых я могу подумать:
- Продолжайте объявлять пользовательские исключения сразу после класса, который его вызовет / бросит.
- Храните все пользовательские исключения в общем файле, который называется
customExceptions.php
.
- Хранить все пользовательские исключения в отдельном файле, названном в честь его исключения,
myClassException.php
, в каталоге с именем /exceptions
.