Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je suis en train de découvrir Zend Framework que j'ai installé sur Ubuntu 9.04 avec le LAMP proposé par Synaptic.
Je travaille sur la base du livre "Les cahiers du programmeur - Zend Framework - Bien développer en PHP".
J'ai essayé les premiers exemples avec les composants Zend_Date et Zend_Loader_Autoloader : pas de problème.
Maintenant j'essaye le composant Zend_Log qui devrait gérer les erreurs PHP (ou exceptions) mais ne le fait pas. J'obtiens à la place un fatal error.
Note : la ligne $obj->method(); fait exprès de génerer une erreur.
Code PHP :
<?php
require 'Zend/Log.php';
require 'Zend/Log/Writer/Stream.php';
$log = new Zend_Log();
$writer = new Zend_Log_Writer_Stream("php://output");
$log->addWriter($writer);
try {
$obj->method();
} catch (Exception $e) {
$log->log($e, Zend_Log::INFO);
}
?>
Résultat dans le navigateur :
Fatal error: Call to a member function method() on a non-object in /home/lRobule31/www/htdocs/examples/zend_log_00.php on line 13
Merci de m'éclairer.
Robule31.
(L'année prochaine ce sera 32)
Hors ligne
Le problème vient de ton $obj j'ai l'impression.
Est-ce que c'est réellement un objet, qui lorsque la méthode X est appelée, une exception est levée ??
Hors ligne
En fait j'ai réduit mon code PHP à
<?php
try {
$obj->method();
} catch (Exception $e) {
echo 'error';
}
?>
et j'ai la même erreur. Il ne s'agit donc pas d'un problème Zend mais PHP.
J'essaye de me documenter sur les blocs try catch.
Merci.
Hors ligne
Peux-tu nous montrer le code de ta classe ?
Hors ligne
Merci pour vos réponse. En fait il s'agissait d'une mauvaise compréhension de la gestion des exceptions sous PHP5.
Hors ligne