JeuWeb - Crée ton jeu par navigateur
[Symfony 2] Problèmes de performance - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Symfony 2] Problèmes de performance (/showthread.php?tid=6468)

Pages : 1 2 3


[Symfony 2] Problèmes de performance - Criptus - 27-10-2012

Bonjour

J'apprends actuellement à utiliser Symfony2 mais j'ai une petite question:
Avant lorsque je voulais afficher une page j'utilisai ce code
Code PHP :
<?php
include('includes/header.php');

//la je met se que je veux
echo 'Bonjour comment sa va?';

include(
'includes/footer.php');
?>

C'était très simple et les pages étaient chargées très rapidement su mon navigateur.
Maintenant que "j'utilise" Symfony2, les pages simple (affichage uniquement de Hello Wolrd) deviennent beaucoup plus longue à charger.
Actuellement je suis en local mais si un jour je met un site en ligne, un serveur classique aura du mal à suivre non? Quand on utilise Symfony2, il faut avoir un serveur dédié?

Je vous remercie


RE: symfony 2 - Xenos - 27-10-2012

Salut,

Symfony est un framework, donc, il permet de faire des choses poussées assez rapidement et facilement.
Mais il y a toujours un équilibre (on ne peut pas tout avoir): sur de tels systèmes (les frameworks), les pages élémentaires deviennent bien plus (bien trop) lourdes, car le framework cible des trucs poussés et non des trucs élémentaires.

C'est donc parfaitement normal que ce soit plus long à charger. On n'essaie pas de faire de la vitesse de calcul (aka le temps d'affichage de la page) une priorité dans un framework: la priorité, c'est la vitesse de développement (aka combien de temps de travail ca va te demander à toi pour faire ce que tu veux).

C'est une des raisons pour lesquelles je n'aime pas trop les framework d'ailleurs, mais cette opinion est totalement personnelle, et je ne crache pas sur les framework pour autant.


RE: symfony 2 - Sephi-Chan - 27-10-2012

En général le mode de développement est plus lent car de nombreuses classes du framework sont rechargées à chaque requêtes. C'est plus efficace en mode production.

Les frameworks ont toujours un impact sur les performances (plus ou moins important). La plupart des frameworks facilitent la mise en place de cache de différentes natures pour compenser assez facilement cet impact.

En revanche, les fonctionnalités qu'ils apportent permettre d'industrialiser le développement et donc d'être bien plus efficace en la matière. Par exemple, le système très traditionnel que tu exposes est totalement caduque pour du développement un peu évolué (avec des rendus sous différents format, par exemple).


RE: symfony 2 - Criptus - 27-10-2012

Merci pour vos explications.
Je verrai bien le gains de temps plus tard quand je connaîtrai bien Symfony2...

(27-10-2012, 10:34 AM)Sephi-Chan a écrit : Par exemple, le système très traditionnel que tu exposes est totalement caduque pour du développement un peu évolué (avec des rendus sous différents format, par exemple).

D'ailleurs dans le tuto que je lis, l'auteur parle aussi d'afficher des pages sous différent format. (ex le xml) mais pourquoi changer de format html c'est très bien non?


RE: symfony 2 - Sephi-Chan - 27-10-2012

Imagine un contrôleur users qui a une action show qui affiche le détail d'un utilisateur. Cette action serait atteinte via l'URL /users/42.

Tu pourrais vouloir faire en sorte que, quand on appelle cette URL avec un autre format, par exemple une image en faisant :


<img src="/users/42.png" alt="Avatar de l'utilisateur 42" />

Ça te renvoie l'avatar de l'utilisateur.

Tu peux même vouloir renvoyer du JSON dans le cadre d'une API.


RE: symfony 2 - Criptus - 27-10-2012

a d'accord merci.


RE: symfony 2 - Criptus - 28-10-2012

Bonjour
Lorsque vous développez un site via Symfony, vous utilisez des Bundle déjà tout prêt?
Je trouve sa intéressant car on ne perd pas de temps a developer un espace membre par exemple qui, je pense doit être sécurisé, mais d'un autre côté il faut modifier une partie du code pour l'adapter à nos besoin.
Vous faites quoi vous?


RE: symfony 2 - SorenS - 28-10-2012

J'utilise beaucoup les bundles oui.
Et il faut pas modifier le code d'un bundle mais le surchager


RE: symfony 2 - Criptus - 28-10-2012

Le surcharger? Sa veut dire quoi sa?


RE: symfony 2 - Akira777 - 29-10-2012

Imaginons que tu ais une classe FooBundle avec une fonction getById(), tu ne modifies pas son code directement mais tu surchages ta classe en ayant une classe MyFooBundle avec une fonction getById() qui hérite de FooBundle ou plus généralement (suivant les frameworks) d'un contrôleur lié aux bundles.

Là je parle en général évidemment. Pour Symfony c'est un peu différent.
Symfony extending bundle
Override a bundle with Symfony2

Dans un cas un peu plus pédagogique avec CodeIgniter que je connais mieux.
On souhaite altérer le comportement des contrôleurs.

On a un fichier CI_Controller.php qu'il ne faut surtout pas modifier.
Dans notre dossier application, on créé un fichier MY_Controller.php, et on réécris la fonction qui nous intéresse. C'est un autre aspect de la surcharge.

Surcharge avec CodeIgniter

Plus généralement en PHP :
Surcharge magique

Vu que tu sembles peut-être pas à l'aise avec quelques concepts un petit peu avancé de PHP, avant de penser Framework, je te conseille de jeter un oeil à ce tutoriel, tu mettras un bon pied dans la POO et les concepts d'abstraction, d'héritage, de surcharge, ... en passant par la réalisation d'un jeu de combat.
Introduction à la POO, Mini-jeu de combat