Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour je suis un tuto de ZendFramework, mais je coince sur le chargement d'un fichier, l'exerce a pour but de lire le contenu à l'aide de var_dump en chargement automatiquement des fichiers.
voici le bout de script en question:
<?php // Inclusion de la classe Zend_Loader include 'Zend/Loader.php'; // Déclaration du chargement automatique Zend_Loader::registerAutoload(); // Utilisation d’une classe sans chargement manuel $date = new Zend_Date(); var_dump($date); ?>
en executant ce fichier j'ai cette erreur
Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /var/www/library/Zend/Loader.php on line 266 object
sur la doc est indiquer qu'il fallait utiliser Zend_Loader_Autoloader
<?php // Inclusion de la classe Zend_Loader include 'Zend/Loader/Autoloader.php'; // Déclaration du chargement automatique //Zend_Loader::registerAutoload(); $autoloader = Zend_Loader_Autoloader::getInstance(); var_dump($autoloader); ?>
donc a ce niveau je n'ai plus d'erreur est j'ai fait un var_dump $autoloader pour vient vérifier que j'ai l'objet.
maintenant comment je dois procéder afin que je fasse comme l'exercice ? lire ce qu'il y a dans zend_date ?
je vous remercie d'avance pour vos aide
Dernière modification par keokaz (16-07-2011 08:57:30)
Hors ligne
Bonjour,
Je ne dois pas avoir bien compris le problème, car ça me semble trop simple...
[lang=php] <?php // Inclusion de la classe Zend_Loader include 'Zend/Loader/Autoloader.php'; // Déclaration du chargement automatique //Zend_Loader::registerAutoload(); $autoloader = Zend_Loader_Autoloader::getInstance(); // Utilisation d’une classe sans chargement manuel $date = new Zend_Date(); var_dump($date); ?>
Normalement il te suffit d'ajouter tes instructions à la suite, car par défaut l'autoloader est configuré pour chercher les librairies Zend_ et ZendX.
Par contre, au lieu d'utiliser var_dump($var), tu devrais utiliser Zend_Debug::dump($var) qui te mettra le résultat en forme (bien plus lisible) et respecte mieux le flux de données.
Hors ligne
Il doit y avoir dans les 50 messages de ce type rien que sur ce forum... Pourtant l'erreur est plus qu'explicite :
Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead
--> Zend_Loader::registerAutoload is deprecated
--> use Zend_Loader_Autoloader instead
O_o
Hors ligne
merci de vos réponse, je m'en m'excuse pour mon ignorance, mais j'ai effectivement vu que "Zend_Loader::registerAutoload()" était
une instruction déclassé mais je ne savais plus continer mon tuto car je débute et je suis perdu, je n'ai encore j'amais touché à Zend, je m'était auparavant former sur symfony, en plus je pensais. J'ai vu quelque réponse à se sujet mais je le les comprenaient pas les réponses.
je pensais que pour charger la class "Zend_Date" il fallait une autre instruction entre celle ci et $date = new Zend_Date();
$autoloader = Zend_Loader_Autoloader::getInstance();
donc si je comprend bien en faisant cette autoload
si par exemple je fait un
new MaClasse
l'autoload va automatiquement chercher dans n'importe quelle dossier une class qu'il s'appelle MaClasse?
l'autoload va chercher soit un fichier ,soit une class dans un fichier ?dans n'imorte quelle dossiers du serveur web ?
comment je fais pour savoir comment il fonctionne l'autoload ? (pour appercevoir la methode get::instance())
d'après ce que j'essaye de comprendre, si j'ai Zend_Loader_Autoloader, il faut que j'aille sur le dossier Zend/Loader/Autoload ?
je pose cette question car dans le dossier library il y a plusieurs dossier "autoload", "loader" ,"autoloader.php".. je me noie dedans.
et j'aimerais sourtout savoir
entre l'ancien (zend/loader) et le nouveau (zend/loader/autoloader.php)ont t'ils les même methode?
Dernière modification par keokaz (17-07-2011 11:28:50)
Hors ligne
1 - Avec Zend Framework, un fichier = une classe
2 - On nomme les classes de la façon suivante : new My_Classe_Ici ==> ZF ira chercher le fichier Ici.php dans le dosier My/Classe (pour cela il faut avoir ajouté le namespace 'My_' dans ton fichier de config ou dans ton bootstrap.
Hors ligne
merci de ta réponse,
donc c'est un fichier de configuration "config" et dans le "boostrap" qui fait le lien entre ces classes, je n'en suis encore a apprendre ces fichiers, car je suis bouquin et à cause de loader.php ca me camboule tout
encore une imcompréhension:
[lang=php|
si je tape ce script
<?php // Inclusion de la classe Zend_Loader include 'Zend/Loader/Autoloader.php'; if(!Zend_Loader::isReadable('Zend/View.php')) //ici j'appelle Zend_Loader , loader.php est pourant déprécier pas d'erreur ? { throw new Exception('view.php indisponible'); } Zend_Loader::loadClass('Zend_View'); var_dump(new Zend_View());je pose cette question car: //Zend_Loader_Autoloader::getInstance('My_Loader'); //var_dump(new Zend_Date()); ?>
ici tous va bien ca fonctionne pas d'erreur, mais si je remplace
if(!Zend_Loader::isReadable('Zend/View.php'))
dans se script ce qui me choque (en haut) c'est que Zend_Loader est déprécier et ne me mais pas une erreur
comment l'a t'il charger puisque je n'ai pas fait appelle à
include 'Zend/Loader/Autoloader.php';
si dans ma logique je réctifie avec se script je fait :
if(!Zend_Loader_Autoloader::isReadable('Zend/View.php'))
ici y a une erreur il ne connais pas Zend_Loader_Autoload
Fatal error: Class 'Zend_Loader_Loader_Autoloader' not found in /var/www/htdocs/exemples/Zend_Loader.php on line 4
pourant j'ai charger l' autoloader
include 'Zend/Loader/Autoloader.php';
Dernière modification par keokaz (19-07-2011 05:46:55)
Hors ligne
Tu as une erreur causée par 'Zend_Loader_Loader_Autoloader' : il y a 2 fois le 'Loader' donc il va chercher le fichier : Zend/Loader/Loader/Autoloader.php => il n'existe pas.
Hors ligne
Pages: 1