Minimiser des scripts Javascript en PHP

Minimiser des scripts Javascript en PHP

Tags : JavaScript, PHP, Ressources, Tutoriaux, jQuery
Catégorie : Lemon Cake
Mise en ligne : 6 Janvier 2014 à 14:02

Je viens de trouver une petite classe PHP qui vous permettra de gagner du temps de chargement sur vos gros scripts Javascript.

Vous avez déjà vu que lorsque vous télécharger par exemple la bibliothèque JavaScript jQuery vous avez une version *.min.js et une autre ? Et bien c'est que celle ci a été minimisé. Et bien je vais vous montrer comment minimiser vous même vos scripts JavaScript.

Prérequis

Il vous faudra juste télécharger la classe à cette adresse : https://github.com/rgrove/jsmin-php

Puis l'inclure dans les pages où vous chargez vos scripts JS.

Utilisation

Je vais vous montrer 2 utilisations.

PHP

La première est si vous avez tous vos scripts dans des dossiers et que vous n’exécutez aucun scripts directement dans vos pages :

require_once('jsmin.php');

// On collecte tous les fichiers avec une extension *.js
$files = glob("js/*.js");

// On prépare la variable qui va contenir le Javascript
$js = "";

// On parcours les fichiers *.js
foreach($files as $file) {
    // On récupère le contenu des fichiers *.js, on les minify et on les stocks dans la variable $js
    $js .= JSMin::minify(file_get_contents($file));
}

// Et pour finir, on enregistre le tout dans un nouveau fichier JS.
file_put_contents("js/combined.js", $js);

Vous pouvez aussi utiliser un tableau pour stocker le dossier et le nom de vos fichiers JS

$files = array('dossier1/file1.js', 'dossier2/file2.js', 'dossier3/file3.js');
file_get_contents($file);

Grâce à ceci, vous n'aurez qu'a charger un seul fichier JS et plus toutes une grosse liste.

Javascript

La deuxième est si vous utilisez du JS dans vos pages :

<?php
    // Crée une mémoire tampon pour stocker tout ce qui va suivre
    ob_start();
?>
<script>
    /*
     * Coller ici votre code JavaScript
     */
</script>
<?php echo JSMin::minify(ob_get_clean()); ?>

Maintenant vous avez un script JS qui est compressé.

Facile non ?

<Laisser un commentaire/>

* Champs obligatoire