Documentation du code de SPIP et de ses plugins

Compresseur

Documentation

Table of Contents

Packages

SPIP
Application

Constants

_CSS_EMBARQUE_FICHIER_MAX_SIZE  = 4 * 1024

Functions

minifier()  : string
Minifier un fichier JS ou CSS
compacte()  : string
Synonyme historique de minifier, pour compatibilite
compacte_head()  : string
Compacte les éléments CSS et JS d'un <head> HTML
filtre_embarque_fichier()  : string
Embarquer sous forme URI Scheme un fichier
filtre_embarque_src()  : string
Embarquer le 'src' d'une balise html en URI Scheme
compresseur_ieconfig_metas()  : array<string|int, mixed>
Ajoute les metas sauvegardables du Compresseur pour le plugin IEConfig
compresseur_affichage_final()  : string
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_header_prive()  : string
Compression des JS et CSS de l'espace privé
compresseur_insert_head()  : string
Compression des JS et CSS de l'espace public
compresseur_affiche_milieu()  : string
Afficher le formulaire de configuration sur la page de configurations avancées
compresseur_configurer_liste_metas()  : array<string|int, mixed>
Lister les metas du compresseur et leurs valeurs par défaut
formulaires_configurer_compresseur_charger_dist()  : array<string|int, mixed>
Chargement du formulaire de configuration du compresseur
formulaires_configurer_compresseur_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire de configuration du compresseur
formulaires_configurer_compresseur_traiter_dist()  : array<string|int, mixed>
Traitement du formulaire de configuration du compresseur
compresseur_ecrire_balise_js_dist()  : string
Ecrire la balise javascript pour insérer le fichier compressé
compresseur_ecrire_balise_css_dist()  : string
Ecrire la balise CSS pour insérer le fichier compressé
compresseur_extraire_balises_css_dist()  : array<string|int, mixed>
Extraire les balises CSS à compacter
compresseur_extraire_balises_js_dist()  : array<string|int, mixed>
Extraire les balises JS à compacter
compacte_head_files()  : string
Compacter (concaténer+minifier) les fichiers format CSS ou JS du head.
compresseur_liste_fonctions_prepare_css()  : array<string|int, mixed>
Lister les fonctions de préparation des feuilles css avant minification
compresseur_callback_prepare_css()  : bool|int|null|string
Préparer un fichier CSS avant sa minification
compresseur_callback_prepare_css_inline()  : string
Préparer du contenu CSS inline avant minification
css_resolve_atimport()  : string
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_regroup_atimport()  : bool|string
Regrouper les @import restants dans la CSS concatenee en debut de celle-ci
css_url_statique_ressources()  : mixed
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)
concatener_fichiers()  : array<string|int, mixed>
Concaténer en un seul une liste de fichier, avec appels de callback sur chaque fichier, puis sur le fichier final
concatener_nom_fichier_concat()  : array<string|int, mixed>
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_callback_identite()  : string
Une callback pour la minification par défaut
array_replace_key()  : array<string|int, mixed>
Une callback pour ?
compresseur_embarquer_images_css()  : string
Embarque en base64 les images png|gif|jpg présentes dans un fichier CSS
minifier_css()  : string
Minifier un contenu CSS
minifier_js()  : string
Compacte du javascript grace a Dean Edward's JavaScriptPacker
callback_minifier_css_file()  : string
Une callback applicable sur chaque balise link qui minifie un fichier CSS
callback_minifier_js_file()  : string
Une callback applicable sur chaque balise script qui minifie un JS
minifier_html()  : string
Minifier du HTML

Constants

Functions

minifier()

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

Parameters
$source : string

Contenu à minifier ou chemin vers un fichier dont on veut minifier le contenu

$format : string = null

Format de la source (js|css).

Return values
string
  • Contenu minifié (si la source est un contenu)
  • Chemin vers un fichier ayant le contenu minifié (si source est un fichier)

compacte()

Synonyme historique de minifier, pour compatibilite

compacte(string $source[, string $format = null ]) : string
Parameters
$source : string
$format : string = null
Tags
deprecated
1.6

(SPIP3.1)

see
minifier()
uses
minifier()
Return values
string

compacte_head()

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

Parameters
$flux : string

Partie de contenu du head HTML

Tags
see
compacte_head_files()
Return values
string

Partie de contenu du head HTML

filtre_embarque_fichier()

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

Parameters
$src : string

Chemin du fichier

$base : string = ''

Le chemin de base à partir duquel chercher $src

$maxsize : int = 4096

Taille maximale des fichiers à traiter

Tags
filtre
staticvar

array $mime Couples (extension de fichier => type myme)

Return values
string

URI Scheme du fichier si la compression est faite, URL du fichier sinon (la source)

filtre_embarque_src()

Embarquer le 'src' d'une balise html en URI Scheme

filtre_embarque_src(string $img[, int $maxsize = 4096 ]) : string

Experimental

Parameters
$img : string

Code HTML d'une image

$maxsize : int = 4096

Taille maximale des fichiers à traiter

Return values
string

Code HTML de l'image, avec la source en URI Scheme si cela a été possible.

compresseur_ieconfig_metas()

Ajoute les metas sauvegardables du Compresseur pour le plugin IEConfig

compresseur_ieconfig_metas(array<string|int, mixed> $table) : array<string|int, mixed>
Parameters
$table : array<string|int, mixed>

Déclaration des sauvegardes

Tags
pipeline

ieconfig_metas

Return values
array<string|int, mixed>

Déclaration des sauvegardes complétées

compresseur_affichage_final()

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
Parameters
$flux : string
Return values
string

compresseur_header_prive()

Compression des JS et CSS de l'espace privé

compresseur_header_prive(string $flux) : string
Parameters
$flux : string

Partie de contenu du head HTML de l'espace privé

Tags
pipeline

header_prive

see
compacte_head()
Return values
string

Partie de contenu du head HTML de l'espace privé

compresseur_insert_head()

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

Parameters
$flux : string

Partie de contenu du head HTML de l'espace public

Tags
pipeline

insert_head

see
compacte_head()
Return values
string

Partie de contenu du head HTML de l'espace public

compresseur_affiche_milieu()

Afficher le formulaire de configuration sur la page de configurations avancées

compresseur_affiche_milieu(string $flux) : string
Parameters
$flux : string

Données du pipeline

Tags
pipeline

affiche_milieu

Return values
string

Données du pipeline

compresseur_configurer_liste_metas()

Lister les metas du compresseur et leurs valeurs par défaut

compresseur_configurer_liste_metas(array<string|int, mixed> $metas) : array<string|int, mixed>
Parameters
$metas : array<string|int, mixed>

Couples nom de la méta => valeur par défaut

Tags
pipeline

configurer_liste_metas

Return values
array<string|int, mixed>

Couples nom de la méta => valeur par défaut

formulaires_configurer_compresseur_charger_dist()

Chargement du formulaire de configuration du compresseur

formulaires_configurer_compresseur_charger_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_configurer_compresseur_verifier_dist()

Vérifications du formulaire de configuration du compresseur

formulaires_configurer_compresseur_verifier_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_configurer_compresseur_traiter_dist()

Traitement du formulaire de configuration du compresseur

formulaires_configurer_compresseur_traiter_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Retours du traitement

compresseur_ecrire_balise_js_dist()

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

Parameters
$flux : string

Contenu du head nettoyé des fichiers qui ont été compressé

$pos : int

Position initiale du premier fichier inclu dans le fichier compressé

$src : string

Nom du fichier compressé

$comments : string = ''

Commentaires à insérer devant

Return values
string

Code HTML de la balise <script>

compresseur_ecrire_balise_css_dist()

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

Parameters
$flux : string

Contenu du head nettoyé des fichiers qui ont ete compressé

$pos : int

Position initiale du premier fichier inclu dans le fichier compressé

$src : string

Nom du fichier compressé

$comments : string = ''

Commentaires à insérer devant

$media : string = ''

Type de media si précisé (print|screen...)

Return values
string

Code HTML de la balise

compresseur_extraire_balises_css_dist()

Extraire les balises CSS à compacter

compresseur_extraire_balises_css_dist(string $flux, string $url_base) : array<string|int, mixed>
Parameters
$flux : string

Contenu HTML dont on extrait les balises CSS

$url_base : string
Return values
array<string|int, mixed>

Couples (balise => src)

compresseur_extraire_balises_js_dist()

Extraire les balises JS à compacter

compresseur_extraire_balises_js_dist(string $flux, string $url_base) : array<string|int, mixed>
Parameters
$flux : string

Contenu HTML dont on extrait les balises CSS

$url_base : string
Return values
array<string|int, mixed>

Couples (balise => src)

compacte_head_files()

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/

Parameters
$flux : string

Contenu du de la page html

$format : string

css ou js

Return values
string

Contenu compressé du de la page html

compresseur_liste_fonctions_prepare_css()

Lister les fonctions de préparation des feuilles css avant minification

compresseur_liste_fonctions_prepare_css() : array<string|int, mixed>
Return values
array<string|int, mixed>

Liste des fonctions à appliquer sur les feuilles CSS

compresseur_callback_prepare_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
Parameters
$css : string
$is_inline : bool|string = false
$fonctions : string = null
Return values
bool|int|null|string

compresseur_callback_prepare_css_inline()

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
Parameters
$contenu : string

contenu de la CSS

$url_base : string

url de la CSS ou de la page si c'est un style inline

$filename : string = ''

nom du fichier de la CSS (ou vide si c'est un style inline)

$fonctions : array<string|int, mixed> = null

liste des fonctions appliquees a la CSS

Return values
string

css_resolve_atimport()

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
Parameters
$contenu : string
$url_base : string
$filename : string
Return values
string

css_regroup_atimport()

Regrouper les @import restants dans la CSS concatenee en debut de celle-ci

css_regroup_atimport(string $nom_tmp, string $nom) : bool|string
Parameters
$nom_tmp : string
$nom : string
Return values
bool|string

css_url_statique_ressources()

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
Parameters
$contenu : string
$url_base : string
$filename : string

concatener_fichiers()

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

Parameters
$files : array<string|int, mixed>

Liste des fichiers à concatener, chaque entrée sour la forme html=>fichier

  • string $key : html d'insertion du fichier dans la page
  • string|array $fichier : chemin du fichier, ou tableau (page,argument) si c'est un squelette
$format : string = 'js'

js ou css utilisé pour l'extension du fichier de sortie

$callbacks : array<string|int, mixed> = []

Tableau de fonctions à appeler :

  • each_pre : fonction de préparation à appeler sur le contenu de chaque fichier
  • each_min : fonction de minification à appeler sur le contenu de chaque fichier
  • all_min : fonction de minification à appeler sur le contenu concatene complet, en fin de traitement
Return values
array<string|int, mixed>

Tableau a 2 entrées retournant le nom du fichier et des commentaires HTML à insérer dans la page initiale

concatener_nom_fichier_concat()

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>
Parameters
$dir : string
$files : array<string|int, mixed>
$callbacks : array<string|int, mixed>
$format : string
Return values
array<string|int, mixed>

concatener_callback_identite()

Une callback pour la minification par défaut

& concatener_callback_identite(string &$contenu) : string

Mais justement, par défaut on ne minifie rien !

Parameters
$contenu : string

Contenu à minifier

Return values
string

Contenu à minifier

array_replace_key()

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>
Parameters
$tableau : array<string|int, mixed>
$orig_key : string

Index dont on cherche la valeur actuelle

$new_key : string

Nouvel index que l'on veut voir affecter de la valeur de la clé d'origine

$new_value : mixed = null

Si rempli, la nouvelle clé prend cette valeur à la place de la valeur de la clé d'origine

Return values
array<string|int, mixed>

compresseur_embarquer_images_css()

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

Parameters
$contenu : string

Contenu d'un fichier CSS

$source : string

URL Source de ce fichier CSS

$source_file : string = null

filename Source de ce fichier CSS, si connu

Tags
see
filtre_embarque_fichier()
Return values
string

Contenu du fichier CSS avec les images embarquées

minifier_css()

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 :

  • string media : media qui seront utilisés pour encapsuler par @media les selecteurs sans media
  • string template : format de sortie parmi 'low','default','high','highest'
Parameters
$contenu : string

Contenu CSS

$options : mixed = ''

Options de minification

Return values
string

Contenu CSS minifié

minifier_js()

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

Parameters
$flux : string

Contenu JS

Return values
string

Contenu JS minifié

callback_minifier_css_file()

Une callback applicable sur chaque balise link qui minifie un fichier CSS

callback_minifier_css_file(string $contenu, string $balise) : string
Parameters
$contenu : string
$balise : string
Return values
string

callback_minifier_js_file()

Une callback applicable sur chaque balise script qui minifie un JS

callback_minifier_js_file(string $contenu, string $balise) : string
Parameters
$contenu : string
$balise : string
Return values
string

minifier_html()

Minifier du HTML

minifier_html(string $flux) : string
Parameters
$flux : string

HTML à compresser

Return values
string

HTML compressé

Search results