Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-07-2011 08:56:13

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

[zf 1.11]comment charger automatiquement un fichier ?

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:

Code:

<?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

Code:

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

Code:

<?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

 

#2 16-07-2011 09:27:00

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [zf 1.11]comment charger automatiquement un fichier ?

Bonjour,

Je ne dois pas avoir bien compris le problème, car ça me semble trop simple...

Code:

[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

 

#3 16-07-2011 14:40:08

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [zf 1.11]comment charger automatiquement un fichier ?

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

 

#4 17-07-2011 09:13:22

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [zf 1.11]comment charger automatiquement un fichier ?

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();

Code:

$autoloader = Zend_Loader_Autoloader::getInstance();

donc si je comprend bien en faisant cette autoload
si par exemple je fait un

Code:

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

Code:

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

 

#5 17-07-2011 14:03:24

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [zf 1.11]comment charger automatiquement un fichier ?

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.

wink

Hors ligne

 

#6 19-07-2011 05:07:05

keokaz
Membre
Date d'inscription: 06-07-2011
Messages: 113

Re: [zf 1.11]comment charger automatiquement un fichier ?

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

Code:

<?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

Code:

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 à

Code:

include 'Zend/Loader/Autoloader.php';

si dans ma logique je réctifie  avec se script je fait :

Code:

if(!Zend_Loader_Autoloader::isReadable('Zend/View.php'))

ici y a une erreur il ne connais pas Zend_Loader_Autoload

Code:

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

Code:

include 'Zend/Loader/Autoloader.php';

Dernière modification par keokaz (19-07-2011 05:46:55)

Hors ligne

 

#7 19-07-2011 22:10:58

Chim
Membre
Date d'inscription: 24-12-2008
Messages: 34

Re: [zf 1.11]comment charger automatiquement un fichier ?

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

 

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