Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-09-2009 16:12:22

ted00
Membre
Date d'inscription: 02-06-2009
Messages: 23

[Résolu][ZEND 1.9.1] Gestion de erreurs

Bonjour,

Je viens de remarquer que la gestion des erreurs ne fonctionnait pas entre le mode dev et production,
les code généré sont identique, ce qui n'est pas cool alors que j'ai un ErrorController et un views error .

Est-que quelqu'un pourrait me  dire ce qui cloche dans mon fichier index.ph, j'ai déjà passer pas mal de temps dessus et je deviens chèvre.

Index.php

Code:

<?php
 
error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('Europe/Paris');

// mise en place des repertoires et chargement des classes 
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application/'));
set_include_path(
    APPLICATION_PATH . '/../library'
    . PATH_SEPARATOR . APPLICATION_PATH . '/default/models/'
    . PATH_SEPARATOR . get_include_path()
);

require_once "Zend/Loader/Autoloader.php";
Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

// Chargement de la configuration
$config = new Zend_Config_Ini(APPLICATION_PATH . '/_configs/application.ini', 'Production');
$registry = Zend_Registry::getInstance();
$registry->set('config', $config);
$configSession = new Zend_Config_Ini(APPLICATION_PATH . '/_configs/session.ini', 'Production');
$registry->set('configSession', $configSession);

//SMTP SERVER
if($config->smtp->auth){
    $smtpAuth = array('auth' => $config->smtp->auth,
                    'username' => $config->smtp->username,
                    'password' => $config->smtp->password);
$tr = new Zend_Mail_Transport_Smtp($config->smtp->server,$smtpAuth);
}else{
    $tr = new Zend_Mail_Transport_Smtp($config->smtp->server);
}
Zend_Mail::setDefaultTransport($tr);

// Mise en place de la BDD
try {
    $db = Zend_Db::factory($config->db);
    $db->query('SET NAMES UTF8');
    $db->getConnection();
    Zend_Db_Table_Abstract::setDefaultAdapter($db);
    Zend_Registry::set('db', $db);
} catch (Zend_Exception $e) {
    exit($e);
}

// setup controller
$frontController = Zend_Controller_Front::getInstance();
if($config->Dev){
    $frontController->throwExceptions(true);
}else{
    $frontController->throwExceptions(false);
}
// debut debug

// Placez ceci dans votre fichier d'amorçage avant de distribuer votre contrôleur frontal
        $writer = new Zend_Log_Writer_Firebug();
        Zend_Registry::set('Firebug', new Zend_Log($writer));

        $profiler = new Zend_Db_Profiler_Firebug('All DB Queries');
        $profiler->setEnabled(true);
        $db->setProfiler($profiler);
        function fb($message, $label=null)
{
    if ($label!=null) {
        $message = array($label,$message);
    }
    Zend_Registry::get('logger')->debug($message);
}

    $debugBar = new Scienta_Controller_Plugin_Debug(array(  
                                                        'database_adapter' => $db, // Zend_Db_Adapter_Abstract  
                                                        'memory_usage' => true,  
                                                        'collect_view_vars' => true));  
    $frontController = Zend_Controller_Front::getInstance();  
    $frontController->registerPlugin($debugBar); 
       
// fin debug

// PAGINATOR 
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');


$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true) // for dev, put it to TRUE
                ->addModuleDirectory("./../application")
                ->setControllerDirectory(array(
                      'default'     =>  APPLICATION_PATH . '/default/controllers',
                      'admin'       =>  APPLICATION_PATH . '/admin/controllers'
                  ));

// Determine module name
$router = new Zend_Controller_Router_Rewrite();
$request =  new Zend_Controller_Request_Http(); 
$router->route($request);
$moduleName = $request->getModuleName();

////////////////
// ADMIN INIT
////////////////
if($moduleName === 'admin') {
    // LAYOUT SETUP - Setup the layout component
    Zend_Layout::startMvc(APPLICATION_PATH . '/admin/layouts/scripts');    
    // VIEW SETUP - Initialize properties of the view object
    $view = Zend_Layout::getMvcInstance()->getView();
    $view->doctype('XHTML1_STRICT');
    //Add helpers
    $view->addHelperPath(APPLICATION_PATH . '/helpers','Zend_View_Helper');
    //Set title
    $view->headTitle('BackOffice');
    //Set encoding
    $view->headMeta()->appendHttpEquiv('Content-Type','text/html; charset=UTF-8');
    //Set NewsRoom CSS
    $view->layout_css_path = '/admin';
}
//////////////////
// Equidurable INIT
//////////////////
if($moduleName === 'default')  {

    Zend_Layout::startMvc(APPLICATION_PATH . '/default/layouts/scripts');

    $view = Zend_Layout::getMvcInstance()->getView();
    $view->doctype('XHTML1_STRICT');
    //Add helpers
    $view->addHelperPath(APPLICATION_PATH . '/helpers','Zend_View_Helper');
    //Set title
    $view->headTitle('Front');
    
    //Set encoding
    $view->headMeta()->appendHttpEquiv('Content-Type','text/html; charset=UTF-8');
}


$domaine = $_SERVER['HTTP_HOST'];        
    
$lang = new Hostinfo();
$lang = $lang->getLangByHost($domaine);
 
Zend_Registry::set('session', '$session');

if(!isset($_SESSION['Default']['Langue'])){ 
      $_SESSION['Default']['Langue'] = $lang; 
    }   
// run!
$frontController->dispatch();

Merci de l'aide,
Ted

Dernière modification par ted00 (18-09-2009 11:26:27)

Hors ligne

 

#2 10-09-2009 08:24:55

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

Code:

if($config->Dev){
    $frontController->throwExceptions(true);
}else{
    $frontController->throwExceptions(false);
}

le probleme vient de là je pense, dans un cas le front controller va gérer les erreurs et dans l'autre non.


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#3 10-09-2009 09:34:19

ted00
Membre
Date d'inscription: 02-06-2009
Messages: 23

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

Hello,

Merci de ta réponse.

Même quand j'enlève ces lignes j'ai toujours les messages d'erreur genre

Code:

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (12)' in 
C:\wamp\www\monsite\library\Zend\Controller\Dispatcher\Standard.php:242 Stack trace: #0 
C:\wamp\www\monsite\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), 
Object(Zend_Controller_Response_Http)) #1 C:\wamp\www\monsite\public\index.php(173): Zend_Controller_Front->dispatch() 
#2 {main} thrown in C:\wamp\www\monsite\library\Zend\Controller\Dispatcher\Standard.php on line 242

Merci de l'aide,
Ted

Hors ligne

 

#4 10-09-2009 09:36:57

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

Juste pour éclaircir ton problème : si j'ai bien compris ca marche en dev et pas en prod c'est bien ca ?


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#5 10-09-2009 18:02:36

ted00
Membre
Date d'inscription: 02-06-2009
Messages: 23

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

Hello,

Enfaite, j'ai ce type de message dans les deux cas,
alors que en prod j'aimerai qu'il l'affiche dans le site garce à ma views error,
avec un message plus policé.

Merci,
Ted

Hors ligne

 

#6 11-09-2009 15:48:15

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

Peut être devrais tu lire ce tutoriel :
http://julien-pauli.developpez.com/tuto … ceptions2/ Tu devrais trouver tes réponses wink


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#7 11-09-2009 22:57:09

ted00
Membre
Date d'inscription: 02-06-2009
Messages: 23

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

c'est de ce tuto que je suis parti.

Il y a peut-être une subtilité que j'ai pas compris ?

Merci de l'aide,
Ted

Hors ligne

 

#8 18-09-2009 11:25:41

ted00
Membre
Date d'inscription: 02-06-2009
Messages: 23

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

Hello,

Je viens de trouver enfaite $frontController = Zend_Controller_Front::getInstance(); n'était pas instancié,
j'ai mis ces lignes

Code:

$frontController = Zend_Controller_Front::getInstance();
if($config->Dev){
    $frontController->throwExceptions(true);
}else{
    $frontController->throwExceptions(false);
}

juste avant

Code:

$frontController->dispatch();

et c'est bon.

Merci.
Ted

Hors ligne

 

#9 23-09-2009 21:59:08

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

Il y a truc qui cloche dans ton index, t'essaie de récupérer le module courant alors que tu n'as même pas dispatcher la requête. Tu devrais utiliser un plugin(preDispatch) ou un actionHelper pour initialiser ton layout suivant le module courant... Bonne chance

Hors ligne

 

#10 24-09-2009 08:36:46

ted00
Membre
Date d'inscription: 02-06-2009
Messages: 23

Re: [Résolu][ZEND 1.9.1] Gestion de erreurs

Hello,

Je ne vois pas vraiment ce qui cloche, car ça fonctionne sans problème ?

Ted

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages