Smart Debugging with Zend Framework

Sometimes your clients report to you Errors you have never experienced while testing your web application, or broken links, or some errors that occurs under some scenarios that you didn’t apply.

There is a smart trick i do in the ErrorController in my Zend Framework applications, i make the application send me the same error it displays to the user direct to my email, so i can know under what circumstances and conditions that error occurred.

The sweet thing is that when google bot or any search engine crawls my websites, they find some errors also, errors that i and the client didn’t reach, so i get the chance to fix it before any body see it.

I also sometimes disable viewing the error message and display “Some errors has occurred and the support has been notified, sorry for the inconvenience” and provide a link to go to Homepage for example.

Below is the code i have in my ErrorController :

    $errors = $this->_getParam('error_handler');
        switch ($errors->type) {
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                // 404 error -- controller or action not found                
                $this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');
                $this->view->title = 'HTTP/1.1 404 Not Found';
                // application error; display error page, but don't change                
                // status code
                $this->view->title = 'Application Error';
        $body = 'HTTP/1.1 404 Not Found' . "
"; $body .= $errors->exception . "
"; $body .= "IP Address: " . $_SERVER['REMOTE_ADDR'] . "
"; $body .= "User Agent: " . $_SERVER['HTTP_USER_AGENT'] . "
"; $body .= "Lang: " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "
"; $body .= "Referer Link: " . $_SERVER['HTTP_REFERER'] . "
"; $body .= "Requested URL" . $_SERVER['REQUEST_URI'] . "
"; $mail = new Zend_Mail(); $mail->setBodyHtml($body); $mail->setFrom('', 'Website Support'); $mail->addTo("", "Ahmed Abdel-ALiem"); $mail->setSubject('Sitename Error Occurred'); $mail->send(); $this->view->message = $errors->exception;

Leave a Reply

Notify of