Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/03/2008, 02h46   #1
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Par défaut Zend_Loader ou require ?

Bonjour

Je débute avec ZF et j'ai une question concernant le Zend_Loader. Est-ce qu'il y a un intérêt à utiliser Zend_Loader plutôt qu'un classique require ou include ? Parce que d'après ce que j'ai pu constater, c'est classe est relativement gourmande en temps d'exécution.
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2008, 11h08   #2
Membre Expert
 
Avatar de nicolas.sitbon
 
Inscription : août 2007
Messages : 2 024
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2007
Messages : 2 024
Points : 2 117
Points : 2 117
A mon sens, oui, ne serait ce que pour la clarté du code : avec 2 lignes, tu n'as plus à te soucier des includes.
ex :
Code :
1
2
include "Zend/Loader.php";
spl_autoload_register(array('Zend_Loader', 'autoload'));
ou mieux
Code :
1
2
include "Zend/Loader.php";
Zend_Loader::registerAutoload();
Cordialement.
nicolas.sitbon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2008, 11h46   #3
Membre éclairé
 
Homme Yann
Développeur Web
Inscription : avril 2005
Messages : 280
Détails du profil
Informations personnelles :
Nom : Homme Yann
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 280
Points : 366
Points : 366
Envoyer un message via MSN à yannux
Je dirais que tout dépend si tu as besoin d'optimisation ou pas
yannux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2008, 17h12   #4
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Dans ce cas précis je n'ai pas grand besoin d'optimisation, c'est une application qui sera utilisée par 20-30 utilisateurs au max.

Mais quand je vois que pour une l'affichage d'une simple page, le fichier Loader.php prend jusqu'à 20% du temps d'exécution, ça fait quand même soucis pour la suite...
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 02h16   #5
Membre du Club
 
Inscription : juillet 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : juillet 2007
Messages : 70
Points : 63
Points : 63
Envoyer un message via MSN à _phoenix_
Citation:
Envoyé par JuTs Voir le message
Mais quand je vois que pour une l'affichage d'une simple page, le fichier Loader.php prend jusqu'à 20% du temps d'exécution, ça fait quand même soucis pour la suite...
Bun ça dépend du temps d'éxec. total. Si il est de 200 ms, c'est correct ^^

Plus sérieusement, à ma connaissance, Zend_Loader doit être utilisé manuellement seulement si l'on ne connait pas le nom de la classe (chargement dynamique, par exemple). A ce moment là, Zend_Loader peut paraître plus sécurisé et plus utile.
Sinon, un require_once ou include_once.

Perso, je suis adepte du Zend_Loader::registerAutoLoad()

Il existe aussi des caches bas niveau, tel que APC, te permettant d'enregistrer en mémoire l'opcode, plutôt que de compiler ton code à chaque requête (principe même de php : langage interprété).
_phoenix_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 18h19   #6
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Citation:
Envoyé par _phoenix_ Voir le message
Plus sérieusement, à ma connaissance, Zend_Loader doit être utilisé manuellement seulement si l'on ne connait pas le nom de la classe (chargement dynamique, par exemple). A ce moment là, Zend_Loader peut paraître plus sécurisé et plus utile.
Heu... je vois pas comment tu peux ne pas connaître le nom. Si j'utilise une classe c'est que je connais son nom, non ?

Citation:
Envoyé par _phoenix_ Voir le message
Il existe aussi des caches bas niveau, tel que APC, te permettant d'enregistrer en mémoire l'opcode, plutôt que de compiler ton code à chaque requête (principe même de php : langage interprété).

Je suis sur un hébergement mutualisé, donc je ne pense pas avoir accès à ce genre d'optimisations.


Bon, je vais y aller avec des require quand je peux. Ceci dit la solution de l'AutoLoad semble intéressante, je viens de faire un formulaire (avec Zend_Form) et c'est plutôt ennuyeux de devoir faire des require pour chaque type de champ.
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 18h36   #7
Membre du Club
 
Inscription : juillet 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : juillet 2007
Messages : 70
Points : 63
Points : 63
Envoyer un message via MSN à _phoenix_
Citation:
Envoyé par JuTs Voir le message
Heu... je vois pas comment tu peux ne pas connaître le nom. Si j'utilise une classe c'est que je connais son nom, non ?
Oui en effet, mais il peut arriver, par exemple, que tu connaisses seulement le début du nom, et que tu récupère le reste du nom dynamiquement :

Code :
1
2
3
4
5
 
<?php
$prefix = "MyClass_";
$suffix = "MyPrefix";
Zend_Loader::loadClass($prefix.$suffix);
Voici ce que dit la doc officielle :

Citation:
Zend_Loader contre require_once()
Les méthodes Zend_Loader sont les meilleures à utiliser si le nom de fichier que vous devez charger est variable. Par exemple, s'il est basé sur un paramètre de la saisie de l'utilisateur ou un argument de méthode. Si vous chargez un fichier ou une classe dont le nom est constant, il n'y a aucun avantage à l'utilisation de Zend_Loader sur l'utilisation de fonctions de PHP traditionnelles comme require_once().
Citation:
Envoyé par JuTs Voir le message
Je suis sur un hébergement mutualisé, donc je ne pense pas avoir accès à ce genre d'optimisations.
Alors tu peut quand même optimiser lorsqu'il le faut, avec Zend_Cache
_phoenix_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h31.


 
 
 
 
Partenaires

Hébergement Web