Il y a peu, j'ai commencé à m'intéresser à la programmation web, un monde totalement nouveau pour moi. Heureusement, Internet regorge de tutos plus ou moins accessibles, et surtout de scripts prêts à l'emploi... Je suis tombé notamment sur le script COMBINE.PHP de Rakaz, permettant de combiner puis compresser en un seul fichier plusieurs javascripts ou feuilles de style. A la différence de "Minify" & cie, son code est lisible par le commun des mortels et tient en un seul fichier de 5 KO.
Evidemment, le pilleur que je suis n'a pas pu résister à la tentation...
Du mixage du script originel de Rakaz avec le mini-minifieur de Razor-Sharp et avec mon inspiration du moment (à défaut de savoir vraiment coder j'ai des "inspirations"), est ressorti quelque chose qui a l'air de fonctionner correctement.
En résumé, la Chose :
- combine plusieurs fichiers (CSS ou JS) en un seul ;
- réduit la taille de ce fichier en supprimant les caractères superflus ("minification") ;
- compresse le fichier (GZip) si la méthode est supportée par le serveur et le client ;
- envoie au navigateur les headers essentiels (Cache-control de 30 jours, Etags, Content Encoding... etc) ;
- enregistre une copie de ce fichier sur le serveur pour que la prochaine requête soit accomplie plus rapidement.
- Rassembler vos CSS et vos JS dans deux répertoires (par exemple un dossier nommé "css" pour les JS et un dossier "js" pour les CSS .... ou viceversa )
- Renseigner le chemin de ces répertoires dans le script-même
- Remplir au même endroit les autres options (activer ou pas la minification, utiliser ou pas le cache...)
- Inclure le JS ou le CSS fusionné en utilisant : /combine.php?type=javascript&files=fichier1.js,fichier2.js,fichier3.js (pour combiner les JS fichier1, fichier2 et fichier 3) ; ou /combine.php?type=css&files=feuille1.css,feuille2.css,feuille3.css (pour les CSS)
- Note : Il est bien sûr possible de se passer des mal-aimés "?" en créant une règle de réécriture dans .htaccess. (voir http://rakaz.nl/code/combine pour un manuel d'utilisation plus précis)
Toute suggestion et critique est la bienvenue, d'autant plus que je ne sais pas programmer et que, de fait, de nombreuses erreurs ont pu se glisser.
Je vous mets le code en question en pièce-jointe (la balise [php] fait des siennes).
A+ et bonne continuation !
Fichier(s) joint(s)
Ce message a été modifié par le barbier fou - 04 septembre 2011 - 20:35 .