Salut Tonio, En pratique je dirai qu'avec ma méthode, le peu de charge serveur que tu perds vaut largement le gain en charge réseau ! :)
J'ai opté pour le sfCombine que j'ai trouvé très complet à ce niveau là. Il permet de combiner, de minifyser (retrait des espaces et des commentaires) et de packer (compression des js) le tout à la volée, et bien sur, une seule fois pendant le premier appel en production ! Le tout est largement paramétrable, par exemple on peut lui demander de ne pas minifyser un fichier qui l'est déjà ou qui ne fonctionne plus après l'opération. Seul hic, il passe par la base de données pour récupérer le JS.... mais bon une fois mis en cache c'est pas génant. Et si quelqu'un utilise sfDynamicsPlugin, ce serait sympa d'expliquer ses avantages et ses inconvénients pour le combinage de fichiers. Ca devrait conclure ce sujet assez bien je trouve, encore merci à tous :) On 14 août, 09:29, Tonio <[email protected]> wrote: > Hello, > > Dans tout les cas, il faudra en prod générer une version buildée des > scripts, et ne pas la générer à chaque appel. Sinon tu perds en charge > serveur ce que tu gagne en appel http. > > Tonio > > On Aug 13, 6:37 pm, Six <[email protected]> wrote: > > > > > Arf, je vais regarder du côté de ces deux plugins, merci bien :) > > > On 13 août, 18:26, Colin Darie <[email protected]> wrote: > > > > J'ai pris la conversation en cours de route et vous en avez peut-être > > > déjà parlé, mais au moins 2 plugins permettent de réaliser ce genre de > > > choses : > > > > -http://www.symfony-project.org/plugins/sfCombinePlugin > > > -http://www.symfony-project.org/plugins/sfDynamicsPlugin(voiraussihttp..."Cache") > > > . > > > > Je n'en connais encore aucun des 2, mais compte bientôt utiliser le 2° > > > pour ça, qui permet aussi de faire plein d'autres choses. > > > > ++ > > > > Le jeudi 13 août 2009 à 08:31 -0700, Six a écrit : > > > > > désolé pour les fautes en début de réponse, je me suis très mal > > > > relu ! :p > > > > > Je reviens à la charge pour dire que je viens de trouver un problème à > > > > ma proposition... > > > > En utilisant ma boucle dans le layout, je dois supprimer la ligne : > > > > <?php include_javascripts() ?> > > > > > Du coup, Symfony prend la liberté d'appeler tous mes JS en tête de > > > > page ! > > > > Je vais chercher un moyen de désactiver cette option, mais si > > > > quelqu'un sait quoi faire, je suis preneur. > > > > > Merci > > > > > On 13 août, 17:13, Six <[email protected]> wrote: > > > > > Bonjouer Aymeric, > > > > > > La solution à laquelle que tu proposes correspond tout à fait à ce à > > > > > quoi je pensais :) > > > > > > Pour continuer dans cette voie, je pensais boucler sur le > > > > > $sf_response->getJavascripts() dans mon layout, pour faire appel à > > > > > mon script php > > > > > > "assembleur". > > > > > > Ca donnerait quelque chose comme ça (je viens de le tester) : > > > > > > layout.php : > > > > > <?php > > > > > $javascripts = $sf_response->getJavascripts(); > > > > > $sortie = 'url-du-script-assembleur.php?js='; > > > > > foreach ($javascripts as $file => $options) { > > > > > $sortie .= $file.','; > > > > > } > > > > > echo javascript_include_tag($sortie); > > > > > ?> > > > > > > Ce qui donne pour résultat : > > > > > > <script type="text/javascript" src="url-du-script-assembleur.php? > > > > > js=js/lib/jquery.js, js/index.js,"></script> > > > > > > Il ne te reste qu'à coder ton assembleur comme tu l'as précisé là > > > > > haut, à noter que je sépare mes fichiers par des ',' dans cet exemple. > > > > > > Je pense rester proche de la réflexion Symfony en utilisant les > > > > > helpers proprement, et en ne modifiant aucune fonction de base. > > > > > > Comme c'est dans mon layout, j'ai mis le code directement, mais on > > > > > pourrait le mettre dans une fonction si tu as besoin de le réutiliser. > > > > > > Enfin, ceci n'est qu'une supposition, si rien n'est fourni de base par > > > > > Symfony, je procéderai comme ça pour l'instant, mais si quelqu'un > > > > > connait une solution plus interessante, qu'il n'hésite pas à nous le > > > > > faire partager ! > > > > > > On 13 août, 15:29, aymeric <[email protected]> wrote: > > > > > > > Salut, > > > > > > > > J'aimerai savoir si l'un d'entre vous a déjà tenté l'expérience > > > > > > > d'utiliser un de ces scripts combiné avec le helper > > > > > > > use_javascript de > > > > > > > symfony ? > > > > > > > personnellement je n'ai pas encore essayé mais j'y ai déjà réfléchi > > > > > > (entre autre pour mes css) > > > > > > > > Je pensais pour faire cela surcharger la méthode > > > > > > > include_javascripts() > > > > > > > pour la faire pointer vers un de ces scripts de concatenation, que > > > > > > > pensez-vous de ce genre de pratique ? > > > > > > > je n'utilise symfony et le MVC que depuis peu de temps je n'ai donc > > > > > > peut-être pas les bons réflexes mais > > > > > > je pensais à faire un script php qui regroupe ( include(..) ) mes > > > > > > fichiers js et qui se déclare comme étant du javascript ( header > > > > > > ("Content-type: text/javascrit; "); ) > > > > > > et l'appeler avec include_javascripts() . > > > > > > > > Enfin si quelqu'un utilise une méthode différente de tout > > > > > > > regrouper > > > > > > > manuellement dans un seul fichier .js, je suis tout ouïe ! :-p > > > > > > > j'espère que ce que je propose n'est pas ce que tu appelles > > > > > > "manuellement". > > > > > > > Si quelqu'un a une façon plus MVC ou carrément plus symfony de faire > > > > > > je suis aussi tout ouïe. > > > > > > > cdlmt, > > > > > > > Aymeric > > > > signature.asc > > > < 1 000AfficherTélécharger --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" de Google Groupes. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour afficher d'autres options, visitez ce groupe à l'adresse http://groups.google.com/group/symfony-fr?hl=fr -~----------~----~----~----~------~----~------~--~---
