Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-05-2013 14:43:09

Seryus
Membre
Date d'inscription: 17-02-2012
Messages: 128

[Résolu]Informations sur les routes et performances

Bonjour,

J'ai quelques interrogations sur les routes de Zend Framework 2.

J'ai lu que les routes littérales étaient moins lourdes que les routes par segment, quels sont les avantages/inconvénients de chacune ? (Je pense que les routes littérales ne sont pas meilleures en tout point, sinon les segments n'existeraient pas).

Dans la Skeleton Application, le module de base contient une route littérale "home", pourtant je n’arrive pas à la la cibler en utilisant son nom "home" dans la barre d'adresse, alors que ça fonctionne avec la route par segment "application". Ce serait une des différences entre ces 2 types de routes ?

Est-ce qu'on déclare les routes littérales de la même manière que les routes par segment dans "module.config.php" ? (Je sais qu'on les déclare ici, mais je parle des paramètres).

Concernant les performances, j'ai l'impression que Zend Framework 2 est plus long à charger que sa première version, comment améliorer les performances ?

Si je suis sûr que mon application ne sera disponible que dans une seule langue, je n'ai pas besoin de Zend\I18n\Translator\Translator (qui est par défaut activé dans la Skeleton Application) ? Je gagnerai en performance ?

Tous les fichiers contenus dans la Skeleton Application sont-ils nécessaires ?

Merci de bien vouloir me renseigner !

Dernière modification par Seryus (27-05-2013 10:01:55)

Hors ligne

 

#2 26-05-2013 10:53:07

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: [Résolu]Informations sur les routes et performances

Pour les routes, la différence entre littérale et segment, c'est que la segment te permet d'insérer des paramètres dans ton url :

Prenons un exemple:
www.monsite.fr/mapage/id

tupourrais avoir besoin de ces urls la:
www.monsite.fr/mapage/1
www.monsite.fr/mapage/2
www.monsite.fr/mapage/3
www.monsite.fr/mapage/4
...

en utilisant les routes segment tu peu définir tes routes comme ceci :  www.monsite.fr/mapage[/:id]
alors qu'en utilisant les littérales tu devrait définir chaque route à la main. (et avoir ainsi une action par url).

Edit: Et oui ces deux types de routes se déclarent de la même manière dans module.config.php. finEdit big_smile
Je ne pense pas qu'il y ai vraiment une question de performance dans ces deux types d'urls mais s'il y en a une, considère que c'est négligeable.

Le skeleton est prévu pour répondre aux besoins de base d'un développeur, tu n'a pas besoin d'y toucher normalement, si tu doit optimiser le temps de réponse de ton site, vérifie plutôt ton code que celui du skeleton wink

Dernière modification par flobrflo (26-05-2013 10:53:46)

Hors ligne

 

#3 26-05-2013 18:42:00

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Résolu]Informations sur les routes et performances

Salut, en fait le skeleton contient une route par segment pour pouvoir tester facilement le ZF2 car sa route par segment permet de gérer dynamiquement toutes les urls possibles en fonction de ton contrôleur. Le problème c'est que c'est moins rapide que via une route litéral que tu vas définir pour chaque url.

Admettons que tu ais un contrôleur LoginController et une action indexAction dedans. La fonction indexAction va s'occuper d'afficher la page d'accueil pour se connecter à ton site. En utilisant la route segment par défaut tu vas avoir l'url suivante http://monsite.fr/login/index et c'est pas forcément très parlant tu pourrais vouloir la renommer en http://monsite/user/login. Pour ça tu dois définir une route qui pointe vers le contrôleur LoginController et vers l'action indexAction.

De plus les routes par segment fonctionnent via des regexp c'est donc un traitement supplémentaire pour voir si l'url saisi peut correspondre à la route. Tandis que litéral tu as déjà défini un dur l'url donc il va recherche l'url s'il la trouve il a la route. Le mieux est donc d'utiliser le plus souvent des routes litérales et quand il y a des paramètres dynamiques utiliser les segments.

Hors ligne

 

#4 27-05-2013 08:21:52

Seryus
Membre
Date d'inscription: 17-02-2012
Messages: 128

Re: [Résolu]Informations sur les routes et performances

Ok merci pour ces renseignements. Je pense avoir bien compris comment fonctionnaient les routes en regardant le code du Sekeleton Application.

Pour mon soucis de performance, j'ai refait le tutoriel du site officiel de Zend, et au moment où j'appelle

Code:

return new ViewModel(array(
            'albums' => $this->getAlbumTable()->fetchAll(),
        ));

dans mon controller AlbumController, le temps d'attente de la requête GET qui récupère le HTML passe de 110ms à 1,2s (je fais mes tests en local). C'est normal ? Il me semble que sous Zend 1 j'étais à 0,6ms avec quelques enregistrements dans la BDD, là 1,2s avec rien dedans o.o

Puis pour les fichiers de la Skeleton Application, à part la library Zend, tout ce qu'il y a dans le dossier "vendor" est vraiment utile ?

Dernière modification par Seryus (27-05-2013 08:35:02)

Hors ligne

 

#5 27-05-2013 09:46:20

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Résolu]Informations sur les routes et performances

Ah bah oui  dans le dossier vendor tu vas y mettre tous les modules externes que tu souhaites ajouter à ton application. Par exemple un moteur de template Twig, Doctrine 2 etc ... Et le composer le fait pour toi tout seul smile.

Pour les perfs je dois dire que ça dépend de ta machine en fait j'ai remarqué que sur windows c'était généralement lent comparé à linux, ensuite il faut vraiment se renseigner sur les fonctionnalités de mise en cache qui apportent un vrai confort.

Hors ligne

 

#6 27-05-2013 10:01:18

Seryus
Membre
Date d'inscription: 17-02-2012
Messages: 128

Re: [Résolu]Informations sur les routes et performances

Ok merci ! Pour le cache je verrais à la fin pour éviter les prises de têtes inutiles pendant le développement du site smile

Hors ligne

 

#7 02-06-2013 17:42:57

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: [Résolu]Informations sur les routes et performances

1,2 s c'est beaucoup trop.

Sur mon application, en local, avec une dizaine de requêtes via Doctrine, et un affichage assez complexe, je suis aux alentours de 140 ms (et encore, j'ai pas activé plusieurs caches, donc je devrais être en dessous des 100 ms).

N'oublie pas d'utiliser APC également (ou n'importe quel cache d'op-code). C'est indispensalbe dès que tu utilises de gros frameworks comme Zend.

Hors ligne

 

#8 17-06-2013 18:04:03

Seryus
Membre
Date d'inscription: 17-02-2012
Messages: 128

Re: [Résolu]Informations sur les routes et performances

bakura a écrit:

1,2 s c'est beaucoup trop.

Sur mon application, en local, avec une dizaine de requêtes via Doctrine, et un affichage assez complexe, je suis aux alentours de 140 ms (et encore, j'ai pas activé plusieurs caches, donc je devrais être en dessous des 100 ms).

N'oublie pas d'utiliser APC également (ou n'importe quel cache d'op-code). C'est indispensalbe dès que tu utilises de gros frameworks comme Zend.

Je vais voir pour APC. Mais en ce qui concerne mes performances sans cache, c'est normal ? Sachant que mes requêtes ne sont pas compliquées, que ma BDD est presque vide et que je ne fais que récupérer/afficher quelques lignes ?

Hors ligne

 

#9 17-06-2013 19:05:51

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Résolu]Informations sur les routes et performances

Salut, sur windows c'est plus long que sur mac ou linux. J'ai mon pc portable sous linux et les temps de réponse sont meilleurs que sur mon windows sur une machine moins performante. Personnellement ça ne m'étonne pas trop j'ai a peu près la même chose sous windows sans cache. C'est d'ailleurs bien bordélique de trouve un PHP avec le cache APC d'activé pour windows.

Hors ligne

 

#10 20-06-2013 15:01:14

Seryus
Membre
Date d'inscription: 17-02-2012
Messages: 128

Re: [Résolu]Informations sur les routes et performances

Ok merci pour ces renseignements, ça me rassure d'un coté. Je développe sous Windows mais le serveur en production sera sous Linux, ça devrait aller si j'utilise le cache comme on me l'a conseillé smile

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