В настоящее время у меня есть две иерархии классов: одна для обработки ошибок и другая для их регистрации.
Мне интересно
1) выгодно ли делегировать обработку ошибок классу, отдельному от обработчика ошибок
А
2) хороший ли дизайн у меня.
Вот что у меня есть:
class ErrorHandler {
public __construct(ErrorLogger $ErrorLogger) {
...
$this->setErrorPageURL('/error.php');
}
public function setErrorPageURL($errorPageURL);
public function handle() {
...
$this->ErrorLogger->log($errorNumber, $errorMessage, $errorFile, $errorLine);
header("Location: $this->errorPageURL");
}
}
class ErrorLogger {
abstract protected function log($errorNumber, $errorMessage, $errorFile, $errorLine);
// Overridable.
protected function getExtraLogMessage() {
return null;
}
}
class EmailerErrorLogger extends ErrorLogger {
public function __construct($toEmailAddress, $fromEmailAddress) {
...
}
protected function log($errorNumber, $errorMessage, $errorFile, $errorLine) {
// collect error information and various pieces of information
mail(...);
}
}
register_shutdown_function(array(new ErrorHandler(new EmailerErrorLogger()), 'handle'));