Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour, j'étais en train de me demander dans quel contexte faillait-il les utiliser, sachant qu'il y a une différence de temps d'exécution aussi infime soit-elle. J'attends vos conseils
Hors ligne
Include et include_once est à utiliser pour inclure un bout de php (ou html) sans générer d'erreur en cas d'absence
C'est donc rarement le cas. car ça signifie que le contenu du dit fichier n'est pas important.
ou alors il faut tester l'existence du fichier avant.
require et require_once lui génère une erreur en cas d'absence du fichier. il est donc beaucoup plus adapté à la "modularisation" du code. pour éviter que les message s'affiche il est possible de traper l'erreur et d'agir en conséquence.
Zend_Loader sert lui à charger une classe il agit comme un require_once mais en plus il vérifie l'existence de la classe dans le fichier.
les trois n'ont donc pas du tout le même usage.
quant au performance c'est tellement pinots que c'est pas là dessus qu'il te faut chercher à optimiser.
A+JYT
Hors ligne
Hello,
Malheureusement, tout le monde n'a pas le droit à Linux. Si comme moi, tu dois utiliser Windows, tu éviteras tant que possible d'utiliser Zend_Loader.
A+
Hors ligne
mikaelkael ... je suis pas d'accord Zend_Loader tu utiliseras, windows tu vireras :-)
Sans rire c'est quoi le truc impératif qui fait planter Zend_Loader sous windows ...
Si tu travailles avec le ZF, je ne crois pas possible de s'en tirer correctement sans un opcache code ( APC et autres )
Hors ligne
mikaelkael a écrit:
Hello,
Malheureusement, tout le monde n'a pas le droit à Linux. Si comme moi, tu dois utiliser Windows, tu éviteras tant que possible d'utiliser Zend_Loader.
A+
pourqoi je suis sous windows linux et MacOS et jutilise à font Zend_Loader sans aucun problèmes
A+JYT
Hors ligne
mikaelkael a écrit:
Hello,
Malheureusement, tout le monde n'a pas le droit à Linux. Si comme moi, tu dois utiliser Windows, tu éviteras tant que possible d'utiliser Zend_Loader.
A+
Moi aussi, je suis sous Windows et OS X et je n'ai aucun problème avec le Zend_Loader, quel est exactement ton problème ?
@+
Hors ligne
Hello,
Je vois que personne n'a profilé avec ZendStudio sous Windows . C'est catastrophique ! Tout le camembert est pris par Zend_Loader.
Il est bien évident que je parle d'une base de temps de 150ms. Si vous comparez, sur une génération de page de 1s ou + avec un Zend_Db ou un Zend_Date en action, Zend_Loader passe inaperçu.
Je ne peux pas virer Windows (ou peut être en quittant ma boîte ).
A+
Hors ligne
mikaelkael a écrit:
Hello,
Je vois que personne n'a profilé avec ZendStudio sous Windows. C'est catastrophique ! Tout le camembert est pris par Zend_Loader.
Il est bien évident que je parle d'une base de temps de 150ms. Si vous comparez, sur une génération de page de 1s ou + avec un Zend_Db ou un Zend_Date en action, Zend_Loader passe inaperçu.
Je ne peux pas virer Windows (ou peut être en quittant ma boîte).
A+
Ah oui, je crois avoir déjà vu un post sur ce sujet dans le forum... Par ailleurs, ce serait pas mal d'avoir un petit tuto sur le 'profiling' avec Zend Studio. Tu en connais un ?
++
Hors ligne
ben ça me parait évident
vérifier que la classe n'existe pas déjà
vérifier que le chemin existe
vérifier que c'est un fichier php
lire le fichier
vérifier que la classe existe
ça rends plus de temps que lire le fichier
si tu écrit toi même le code à chaque fois pour faire ça tu obtiendras là aussi des ms en plus que de simplement lire le fichier
alors tu as le choix soit tu lit sans rien vérifier avec un once c'est mieux et tu continu ton script se si ça plante tu n'as aucun moyen de rattrapage et ton appli est dans les choux
soit tu fais des vérif (à priori ou à postériori) et là tu peux gérer les problème et éviter le plantus généralisé
c'est bien ce que je disais ça n'as pas du tout le même usage.
si tu fais l'impasse sur Zend_Loader et que tu dois faire une appli robuste alors il te faudra coder un équivalent et tu grignotera des ms
A+JYT
Hors ligne
Hello,
Mon message ne dit pas que je n'utilise pas Zend_Loader mais que j'évite de l'utiliser. Mes fabriques utilisent Zend_Loader. Mais j'ai un paquet de require_once en début de bootstrap (Zend_Controller_Action, Zend_Layout, Zend_Db, Zend_Controller_Front...) qui à mon sens n'ont pas besoin d'être charger par Zend_Loader.
A+
Hors ligne
sekaijin a écrit:
si tu fais l'impasse sur Zend_Loader et que tu dois faire une appli robuste alors il te faudra coder un équivalent et tu grignotera des ms
A+JYT
Je dois être à coté de la plaque vu que je n'utilise QUE des require_once, que ce soit pour l'utilisation des classes du Zend Framework ou les miennes, et je fais ça dans des grosses appli en production et je n'ai jamais aucun plantage ni problème. En tout cas pas à cause de ça.
Et je ne code rien pour remplacer un loader.
Je sais de quelle classes je vais avoir besoin, je fais mes require_once et basta.
S'il m'arrive d'en oublier, les tests sont là pour ça et ce genre de problème ne va jamais jusqu'en production.
Dernière modification par Jean-Marc Rigade (27-08-2008 18:55:46)
Hors ligne
Hello
mikaelkael : J'utilise Windows et Zend Studio, et je constate aussi que Zend_Loader prend une bonne partie du camember lorsque je fais un profiling... Alors je me pose quand même des questions quant à l'optimisation de cette classe, et même de mon site MVC, qui met quand même un peu de temps à se charger même en local...
Faut-il l'utiliser pour charger dynamiquement les classes ou bien mettre des require lorsqu'on peut ?
Hors ligne
Hello,
Il y a un message sur ce forum qui explique les différences "Include, Include_Once, Require, Require_Once ou Zend_Loader" (de Gauthier je crois).
En tout cas, la version 1.7.0 du ZF sort lundi prochain. Sa documentation a été mise à jour avec notamment un chapitre "Performance" (chargement des classes, localisation, rendu des vues).
Je peux mettre en ligne la nouvelle version de la doc pour ceux que ça intéresse avant la semaine prochaine.
A+
Hors ligne
Hello,
Pour ceux que cela intéresse, la doc de la 1.7 : http://mikaelkael.fr/doczf/ et le chapitre sur les performances http://mikaelkael.fr/doczf/performance.html .
C'est un peu brut de décoffrage.
A+
Dernière modification par mikaelkael (14-11-2008 19:30:37)
Hors ligne