Précédent   Forum des professionnels en informatique > PHP > Langage > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, etc. pour PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2011, 19h40   #1
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Par défaut Minifier (compresser) du code PHP 5.3+

Bonjour à tous,

J'ai le plaisir de vous annoncer qua j'ai publié sur mon blog DVP le code source d'une classe qui minifie (compresse) le code source d'une ou plusieures classes PHP 5.3+.
Le procédé de minification consiste en un retrait tous les commentaires ainsi que de la mise en forme du code source. Ne reste plus que ce qui est strictement nécessaire sans altérer le fonctionnement du code.

Voir ici

__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 20h02   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
tu gères les traits?
C'est quoi l’intérêt ?
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 20h25   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
la même chose en plus simple :
http://www.developpez.net/forums/d11...p/#post6117247

ps : y'a quoi de PHP 5.3 la dedans ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 21h11   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par gene69 Voir le message
tu gères les traits?
C'est quoi l’intérêt ?
Je ne gère pas les traits.
L'intérêt c'est de rassembler en un seul fichier les classes de base d'un framework, ou d'une branche du framework, tout en aidant le parseur PHP à réduire l'empreinte mémoire du tableau des tokens et surtout améliorer la vitesse de chargement des différentes classes. N'ayant pas accès à un cache d'opcode, on fait comme on peut.

Citation:
Envoyé par stealth35 Voir le message
la même chose en plus simple :
http://www.developpez.net/forums/d11...p/#post6117247

ps : y'a quoi de PHP 5.3 la dedans ?
Ton code ne produit pas exactement la même chose.
La touche PHP 5.3 correspond au token T_NS_SEPARATOR (Namespace separator).
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 21h17   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par rawsrc Voir le message
Ton code ne produit pas exactement la même chose.
tu peux prendre la partie pour minifier les noms de variable

EDIT :
Code :
1
2
3
$file = fopen($outputFile, 'w'); 
fwrite($file, $code); 
fclose($file);
juste file_get_contents
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 21h31   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par stealth35 Voir le message
juste file_get_contents
Tu veux dire file_put_contents.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 08h50   #7
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
L'intérêt c'est de rassembler en un seul fichier les classes de base d'un framework
Pourquoi ne pas ajouter le support des archives phar dans ce cas ?

J'avoue également être assez dubitatif quant à l'intérêt du script. A la limite tout regrouper dans un fichier si c'est nécessaire pour toi , pourquoi pas, mais minifier du code php , je suis pas certains que ça serve à quoi que ce soit.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 10h37   #8
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Bonjour,

Bon, pour ceux qui sont dubitatifs, j'ai mené plusieurs tests de performances sur des inclusions de branches entières d'un framework : en moyenne le gain sur un seul include est de l'ordre de 17,9% et le gain sur un jeu d'include (15 fichiers) est de 300%.
Je ne dis pas qu'il faille tout minifier mais le gain en terme de chargement n'est pas si négligeable que ça.

Enfin, pour ceux que ça défrise, faites comme si cette source n'avait jamais existé
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h10   #9
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Le fait de tout mettre dans un fichier , forcément te fais gagner en performance puisque tu supprimes des includes (quoi qu'avec un autoloader bien ficelé tu devrais déjà limiter les includes de façon intéressante).

Ce que je ne saisie pas c'est pourquoi minifier ?

Pense un jeter un oeil aux archives phar. Si tu as du code à distribuer c'est vraiment intéressant. Je sais pas ce que ca vaut coté perf par contre.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 15h24   #10
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par rawsrc Voir le message
Bonjour à tous,

J'ai le plaisir de vous annoncer qua j'ai publié sur mon blog DVP le code source d'une classe qui minifie (compresse) le code source d'une ou plusieures classes PHP 5.3+.
Le procédé de minification consiste en un retrait tous les commentaires ainsi que de la mise en forme du code source. Ne reste plus que ce qui est strictement nécessaire sans altérer le fonctionnement du code.

Voir ici

je ne l'ai pas encore tester (faute de temps) mais il me semble bien intéressant !
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 14h56   #11
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
Bonjour,

J'ai procédé à l'instant au changement de licence du code source de la classe de minification PHP.
La nouvelle licence est LGPLv3 (GNU Lesser General Public Licence version 3) en lieu et place de la GNU GPL précédente.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h00.


 
 
 
 
Partenaires

Hébergement Web