_CSS_EMBARQUE_FICHIER_MAX_SIZE
public
mixed
_CSS_EMBARQUE_FICHIER_MAX_SIZE
= 4 * 1024
public
mixed
_CSS_EMBARQUE_FICHIER_MAX_SIZE
= 4 * 1024
Minifier un fichier JS ou CSS
minifier(string $source[, string $format = null ]) : string
Si la source est un chemin, on retourne un chemin avec le contenu minifié dans DIR_VAR/cache$format/ Si c'est un flux on le renvoit compacté Si on ne sait pas compacter, on renvoie ce qu'on a recu
Contenu à minifier ou chemin vers un fichier dont on veut minifier le contenu
Format de la source (js|css).
Synonyme historique de minifier, pour compatibilite
(SPIP3.1)
compacte(string $source[, string $format = null ]) : string
Compacte les éléments CSS et JS d'un <head> HTML
compacte_head(string $flux) : string
Cette fonction vérifie les réglages du site et traite le compactage des css et/ou js d'un
Partie de contenu du head HTML
Partie de contenu du head HTML
Embarquer sous forme URI Scheme un fichier
filtre_embarque_fichier(string $src[, string $base = '' ][, int $maxsize = 4096 ]) : string
Une URI Scheme est de la forme data:xxx/yyy;base64,....
Experimental
Chemin du fichier
Le chemin de base à partir duquel chercher $src
Taille maximale des fichiers à traiter
URI Scheme du fichier si la compression est faite, URL du fichier sinon (la source)
Embarquer le 'src' d'une balise html en URI Scheme
filtre_embarque_src(string $img[, int $maxsize = 4096 ]) : string
Experimental
Code HTML d'une image
Taille maximale des fichiers à traiter
Code HTML de l'image, avec la source en URI Scheme si cela a été possible.
Ajoute les metas sauvegardables du Compresseur pour le plugin IEConfig
compresseur_ieconfig_metas(array<string|int, mixed> $table) : array<string|int, mixed>
Déclaration des sauvegardes
Déclaration des sauvegardes complétées
Transformer toutes les URLs relatives image,js en url absolues qui pointent sur le domaine statique on applique pas a l'URL de la CSS, car on envoie un header http link qui permet au navigateur de la pre-fetch sur le meme domaine, sans avoir a faire de requete DNS
compresseur_affichage_final(string $flux) : string
Compression des JS et CSS de l'espace privé
compresseur_header_prive(string $flux) : string
Partie de contenu du head HTML de l'espace privé
Partie de contenu du head HTML de l'espace privé
Compression des JS et CSS de l'espace public
compresseur_insert_head(string $flux) : string
Injecter l'appel au compresseur sous la forme de filtre pour intervenir sur l'ensemble du head du squelette public
Partie de contenu du head HTML de l'espace public
Partie de contenu du head HTML de l'espace public
Afficher le formulaire de configuration sur la page de configurations avancées
compresseur_affiche_milieu(string $flux) : string
Données du pipeline
Données du pipeline
Lister les metas du compresseur et leurs valeurs par défaut
compresseur_configurer_liste_metas(array<string|int, mixed> $metas) : array<string|int, mixed>
Couples nom de la méta => valeur par défaut
Couples nom de la méta => valeur par défaut
Chargement du formulaire de configuration du compresseur
formulaires_configurer_compresseur_charger_dist() : array<string|int, mixed>
Environnement du formulaire
Vérifications du formulaire de configuration du compresseur
formulaires_configurer_compresseur_verifier_dist() : array<string|int, mixed>
Tableau des erreurs
Traitement du formulaire de configuration du compresseur
formulaires_configurer_compresseur_traiter_dist() : array<string|int, mixed>
Retours du traitement
front_ou_back(string $url) : string
Ecrire la balise javascript pour insérer le fichier compressé
compresseur_ecrire_balise_js_dist(string &$flux, int $pos, string $src[, string $comments = '' ]) : string
C'est cette fonction qui décide où il est le plus pertinent d'insérer le fichier, et dans quelle forme d'ecriture
Contenu du head nettoyé des fichiers qui ont été compressé
Position initiale du premier fichier inclu dans le fichier compressé
Nom du fichier compressé
Commentaires à insérer devant
Code HTML de la balise <script>
Ecrire la balise CSS pour insérer le fichier compressé
compresseur_ecrire_balise_css_dist(string &$flux, int $pos, string $src[, string $comments = '' ][, string $media = '' ]) : string
C'est cette fonction qui décide ou il est le plus pertinent d'insérer le fichier, et dans quelle forme d'écriture
Contenu du head nettoyé des fichiers qui ont ete compressé
Position initiale du premier fichier inclu dans le fichier compressé
Nom du fichier compressé
Commentaires à insérer devant
Type de media si précisé (print|screen...)
Code HTML de la balise
Extraire les balises CSS à compacter
compresseur_extraire_balises_css_dist(string $flux, string $url_base) : array<string|int, mixed>
Contenu HTML dont on extrait les balises CSS
Couples (balise => src)
Extraire les balises JS à compacter
compresseur_extraire_balises_js_dist(string $flux, string $url_base) : array<string|int, mixed>
Contenu HTML dont on extrait les balises CSS
Couples (balise => src)
Compacter (concaténer+minifier) les fichiers format CSS ou JS du head.
compacte_head_files(string $flux, string $format) : string
Repérer fichiers statiques vs. url squelettes Compacte le tout dans un fichier statique posé dans local/
Contenu du
de la page htmlcss ou js
Contenu compressé du
de la page htmlLister les fonctions de préparation des feuilles css avant minification
compresseur_liste_fonctions_prepare_css() : array<string|int, mixed>
Liste des fonctions à appliquer sur les feuilles CSS
Préparer un fichier CSS avant sa minification
& compresseur_callback_prepare_css(string &$css[, bool|string $is_inline = false ][, string $fonctions = null ]) : bool|int|null|string
Préparer du contenu CSS inline avant minification
& compresseur_callback_prepare_css_inline(string &$contenu, string $url_base[, string $filename = '' ][, array<string|int, mixed> $fonctions = null ]) : string
contenu de la CSS
url de la CSS ou de la page si c'est un style inline
nom du fichier de la CSS (ou vide si c'est un style inline)
liste des fonctions appliquees a la CSS
Resoudre et inliner les @import ceux-ci ne peuvent etre presents qu'en debut de CSS et on ne veut pas changer l'ordre des directives
css_resolve_atimport(string $contenu, string $url_base, string $filename) : string
Regrouper les @import restants dans la CSS concatenee en debut de celle-ci
css_regroup_atimport(string $nom_tmp, string $nom) : bool|string
Remplacer l'URL du site par une url de ressource genre static.example.org qui evite les echanges de cookie pour les ressources images (peut aussi etre l'URL d'un CDN ou autre provider de ressources statiques)
css_url_statique_ressources(string $contenu, string $url_base, string $filename) : mixed
Concaténer en un seul une liste de fichier, avec appels de callback sur chaque fichier, puis sur le fichier final
concatener_fichiers(array<string|int, mixed> $files[, string $format = 'js' ][, array<string|int, mixed> $callbacks = [] ]) : array<string|int, mixed>
Gestion d'un cache : le fichier concaténé n'est produit que si il n'existe pas pour la liste de fichiers fournis en entrée
Liste des fichiers à concatener, chaque entrée sour la forme html=>fichier
js ou css utilisé pour l'extension du fichier de sortie
Tableau de fonctions à appeler :
Tableau a 2 entrées retournant le nom du fichier et des commentaires HTML à insérer dans la page initiale
Calculer le nom de fichier concatene en tenant compte des timestamps : un changement de timestamp ne doit pas modifier le nom mais bien forcer une mise a jour du fichier concat si besoin
concatener_nom_fichier_concat(string $dir, array<string|int, mixed> $files, array<string|int, mixed> $callbacks, string $format) : array<string|int, mixed>
Une callback pour la minification par défaut
& concatener_callback_identite(string &$contenu) : string
Mais justement, par défaut on ne minifie rien !
Contenu à minifier
Contenu à minifier
Une callback pour ?
& array_replace_key(array<string|int, mixed> $tableau, string $orig_key, string $new_key[, mixed $new_value = null ]) : array<string|int, mixed>
Index dont on cherche la valeur actuelle
Nouvel index que l'on veut voir affecter de la valeur de la clé d'origine
Si rempli, la nouvelle clé prend cette valeur à la place de la valeur de la clé d'origine
Embarque en base64 les images png|gif|jpg présentes dans un fichier CSS
compresseur_embarquer_images_css(string $contenu, string $source[, string $source_file = null ]) : string
Extrait les images décrites par 'url(...)' d'un fichier CSS pour les faire embarquer directement dans le fichier
Contenu d'un fichier CSS
URL Source de ce fichier CSS
filename Source de ce fichier CSS, si connu
Contenu du fichier CSS avec les images embarquées
Minifier un contenu CSS
minifier_css(string $contenu[, mixed $options = '' ]) : string
Si $options est vide on utilise la methode regexp simple
Si $options est une chaine non vide elle definit un media à appliquer à la css. Si la css ne contient aucun @media ni @import, on encapsule tout dans "@media $option {...}" et on utilise regexp sinon on utilise csstidy pour ne pas faire d'erreur, mais c'est 12 fois plus lent
Si $options sous forme de array() on passe par csstidy pour parser le code et produire un contenu plus compact et prefixé eventuellement par un @media options disponibles :
Contenu CSS
Options de minification
Contenu CSS minifié
Compacte du javascript grace a Dean Edward's JavaScriptPacker
minifier_js(string $flux) : string
Bench du 15/11/2010 sur jQuery.js : JSMIN (https://github.com/rgrove/jsmin-php/) 61% de la taille initiale / 2 895 ms JavaScriptPacker 62% de la taille initiale / 752 ms
Contenu JS
Contenu JS minifié
Une callback applicable sur chaque balise link qui minifie un fichier CSS
callback_minifier_css_file(string $contenu, string $balise) : string
Une callback applicable sur chaque balise script qui minifie un JS
callback_minifier_js_file(string $contenu, string $balise) : string
Minifier du HTML
minifier_html(string $flux) : string
HTML à compresser
HTML compressé