Zend Framework a useful error class

Am pornit de la clasa asta, si am "curatato un pic" dupa bunul meu plac si deasemenea am folosit Zend_Log nu Zend_Mail, ca nu am chef sa primesc 5000 precum ca niste idiotii nu au nimerit un url corect si etc, mai bine frumos totul scris!

ErrorController.php

<?php
class ErrorController extends Zend_Controller_Action
{
    public function errorAction()
    {
        
        // Ensure the default view suffix is used so we always return good
        // content
        $this->_helper->viewRenderer->setViewSuffi'phtml');
    
        // Grab the error object from the request
        $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()->setHttpResponseCode(404);
            $this->view->message = 'Page not found';
            $this->view->code  = 404;
            if ($errors->type == Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER) {
              $this->view->info = sprintf(
                          'Unable to find controller "%s" in module "%s"',
                          $errors->request->getControllerName(),
                          $errors->request->getModuleName()
                        );
            }
            if ($errors->type == Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION) {
              $this->view->info = sprintf(
                          'Unable to find action "%s" in controller "%s" in module "%s"',
                          $errors->request->getActionName(),
                          $errors->request->getControllerName(),
                          $errors->request->getModuleName()
                        );
            }
            break;
          case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
          default:
            // application error
            $this->getResponse()->setHttpResponseCode(500);
            $this->view->message = 'Application error';
            $this->view->code  = 500;
            $this->view->info  = $errors->exception;
            break;
        }
        
       /*-------------------------------------------
          --START-- Logg the errors using Zend_Log
       --------------------------------------------*/
        $writer = new Zend_Log_Writer_Stream(Zend_Registry::get('root').'/logs/logs.ini');
        $logger = new Zend_Log($writer);
        
        $toLog  = $this->view->message." (".$this->view->code.")nn";
        $toLog .= "Zend Error Type: ".$errors->type."nn";
        $toLog .= "REQUEST_URI: ".$_SERVER['REQUEST_URI']."nn";
        if ( isset($_SERVER['HTTP_REFERER']) ) {
              $toLog .= "HTTP_REFERER: ".$_SERVER['HTTP_REFERER']."nn";
        }
        $toLog .= "Stack trace: nn". $errors->exception->getTraceAsString()."nn";
           
        $logger->log($toLog, Zend_Log::INFO);
       /*-------------------------------------------
          --END-- Logg the errors using Zend_Log
       --------------------------------------------*/
        
        $this->view->title = 'Error!';
        $this->view->heading = 'Oups! Error!';
    
        // pass the environment to the view script so we can conditionally
        // display more/less information
        $this->view->env   = $this->getInvokeArg('env');
    
        // pass the actual exception object to the view
        $this->view->exception = $errors->exception;
    
        // pass the request to the view
        $this->view->request = $errors->request;
        
    }
}

error.phtml

    <p>
        <h3><?=$this->message ?> (<?=$this->code ?></h3>
    </p>
    
    <?php
    if( $this->env == 'test' ):
     if ( isset($this->info ) ): ?>
         
    <? if ( 404 == $this->code ): ?>
      <p><b>Reason:</b> <?= $this->info ?></p>
    <?php elseif (500 == $this->code): ?>
      <p>Bad server, naughty server!<br />No donut for you!</p>
      <h4>Exception information:</h4>
     <p><b>Message:</b> <?= $this->info->getMessage() ?></p>
     <h4>Stack trace:</h4>
     <pre><?= $this->info->getTraceAsString() ?></pre>
    <?php endif; ?>
    
        <?php endif; ?>
    
    <?php endif; ?>
Scris in data de: 2009-12-17 | Fara comentarii
Iankulov Miodrag

I want to work for diddy II

i want to work for diddy

Un show in care Diddy isi cauta o noua asistenta si participantii la acest show trebuie sa treaca prin diferite task-uri date bineinteles de Diddy.Show-ul porneste cu 11 participanti toti dornici de victorie, dar ca orice "batalie" la sfarsit ramane numai unul.

Show-ul mi se pare extraordinar de bun, mult mai bun decat cel scos de 50CENT care din pacate a fost inchis din motive de rating scazut; veti avea parte intodeauna de rasturnari de situatie, certuri intre participanti si tot tacamul ce apartine unui show de nota 10; pot sa spun ca acest show este unul din favoritele mele si il recomand cu toata inima!

Scris in data de: 2009-12-09 | Fara comentarii
Iankulov Miodrag

Photoshop mobile pentru iPhone

iphone photoshopL-am instalat acuma cateva minute pentru ca bineinteles este doar 09:11 dimineata si eu nu am inchis nici un ochi; asa ca m-am pus sa vad ce aplicatii mai sunt noi ca si asa nu am mai avut timp sa fac asa ceva de o "groaza de timp".

Imi plac foarte mult optiunile de flip, saturation si etc; chiar daca sunt destul de minimale fac o treaba excelenta impreuna cu touch screen-ul de pe iPhone, ca si feeling ma refer!

Il puteti incerca si voi chiar daca nu sunteti posesri de iPhone; este available pentru: Windows Mobile si Android! Mai multe detalii pe site-ul oficial al soft-ului aka aici.Sunt curios cei care l-ati incercat sa aud si pareriile voastre!

Scris in data de: 2009-12-05 | Fara comentarii
Iankulov Miodrag

Web: 4 lucruri pentru web developeri

Mollify

Mollify web based ajax interfaceUn open source file manger web-based, poate unul dintre cele mai bune pe care le-am incercat, m-ai ales ca are o interfata ajax based care ajuta enorm; iar eu cum sunt un fan al lucrurilor ajax based Mollify are un loc rezervat in lista mea!


Google: nou code pentru Analytics

Google AnalyticsSe pare ca cei de la Google au scos un nou code de tracking pentru Analytics care va fixa urmatoarele probleme:

  • Se va incarca mai repede
  • Analizarea si colectarea datelor se va face cu mai multa exactitate!
  • Eliminarea de urmarire a erorilor daca Javascript nu a fost incarcat 100%!

Highcharts

Highcharts Deci woaua; aici se poate vedea cu adevarat cat de departe a ajuns Javascript! Fara indoiala cel mai bun script de charts free pe care l-am vazut.?


RegExr tool pentru testare Regular Expression

regex

Fara alte explicatii cu siguranta ceea mai buna aplicatie pentru a testa regular expression!

Scris in data de: 2009-12-05 | Fara comentarii
Iankulov Miodrag

Video: Noua reclama de la Verizon pentru parteneriatul cu Google

O idee interesanta, dar totusi eu zic ca avem nevoie de gadgets, care arata bine si in acelasi timp sunt si destul de "speedy"; totusi reclama arata ca o lovitura sub centura pentru posesorii de iPhone.Nu mi se pare un gest de fairplay fata de Apple cu reclama asta; dar HEI suntem in 2009 cine mai joaca cu fairplay in ziua de astazi?! Nici echipa nationala macar, atunci ce pretentii sa avem de la altii .

Iar acum va las sa savurati reclama din plin:

 

Scris in data de: 2009-12-04 | Fara comentarii
Iankulov Miodrag