Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Bad demo
- $errorHandler = new ErrorHandler();
- set_error_handler(function($errno, $errstr, $errfile, $errline) use ($errorHandler) {
- return $errorHandler->error($errno, $errstr, $errfile, $errline);
- });
- set_exception_handler(function($exception) use ($errorHandler) {
- return $errorHandler->exception($exception);
- });
- class ErrorHandler
- {
- protected $logger;
- public function __construct()
- {
- $this->logger = new Logger();
- }
- public function error($errno, $errstr, $errfile, $errline)
- {
- $this->logger->log('Error:' . $errstr);
- // ...display error message to the user
- }
- public function exception(Exception $exception)
- {
- $this->logger->log('Error:' . $exception->getMessage());
- // ...display error message to the user
- }
- }
- class Logger
- {
- public function log($message)
- {
- // ...write error to file
- }
- }
- // Good demo
- $logger = new Logger();
- $errorHandler = new ErrorHandler($logger);
- set_error_handler(function($errno, $errstr, $errfile, $errline) use ($errorHandler) {
- return $errorHandler->error($errno, $errstr, $errfile, $errline);
- });
- set_exception_handler(function($exception) use ($errorHandler) {
- return $errorHandler->exception($exception);
- });
- class ErrorHandler
- {
- protected $logger;
- public function __construct(Logger $logger)
- {
- $this->logger = $logger;
- }
- public function error($errno, $errstr, $errfile, $errline)
- {
- $this->logger->log('Error:' . $errstr);
- // ...display error message to the user
- }
- public function exception(Exception $exception)
- {
- $this->logger->log('Error:' . $exception->getMessage());
- // ...display error message to the user
- }
- }
- class Logger
- {
- public function log($message)
- {
- // ...write error to file
- }
- }
Add Comment
Please, Sign In to add comment