[plugin] plxMinifyCache
Description :
minifie et met en cache le source. Basé sur Steve Clay et Ryan Minify.
Exemple :
http://imanweb.free.fr/blog/
Télécharger :
http://imanweb.free.fr/PluXML/
Github.com :
https://github.com/ali0une/plxMinifyCache
installation :
auto (v1.2)
configuration :
Possibilité de spécifier la durée (en secondes) du cache (defaut = 3600).
Possibilité de spécifier certaines pages à ne pas mettre en cache (article, recherche) (v1.3)
Pages issue de POST ne sont pas mises en cache (v1.4)
Possibilité de minifier les inline scripts et styles. (v1.4)
administration :
Possibilité de voir et vider le cache (v1.2)
minifie et met en cache le source. Basé sur Steve Clay et Ryan Minify.
Exemple :
http://imanweb.free.fr/blog/
Télécharger :
http://imanweb.free.fr/PluXML/
Github.com :
https://github.com/ali0une/plxMinifyCache
installation :
auto (v1.2)
configuration :
Possibilité de spécifier la durée (en secondes) du cache (defaut = 3600).
Possibilité de spécifier certaines pages à ne pas mettre en cache (article, recherche) (v1.3)
Pages issue de POST ne sont pas mises en cache (v1.4)
Possibilité de minifier les inline scripts et styles. (v1.4)
administration :
Possibilité de voir et vider le cache (v1.2)
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Très interessant ce plugin.
Ce qui m'interesserait maintenant c'est un benchmark pour quantifier le gain fait avec le plugin et son cache (en utilisant par exemple le plugin MyLoremIpsum pour générer 10, 100, 500, 1000 articles et comparer les perfs avec et sans cache).
Je vais regarder le code pour voir si on peut s'affranchir de la modif du fichier index.php
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
Pourquoi pas ... même en gagnant 10 ko par page, plus t'affiches de pages plus tu gagnes. Et surtout tu soulages le server : il calcule ta page toutes les heures, le reste du temps il se contente d'envoyer une page déjà générée. De toute façon tu y gagnes.
Nice : )
Voilà mes remarques, explications et ma version de ton plugin
- ci-dessous donc ma version sans avoir besoin de modifier le fichier index.php.
- juste besoin d'activer le plugin et ça fonctionne
- j'utilise le hook IndexEnd. Tu es passé à coté d'une fonctionnalité des plugins, celle qui permet d'injecter du code au niveau d'un hook pour qu'il y soit interprété à cet endroit, et non pas dans la méthode du plugin. Il faut construire une chaine de caractère avec dedans le code que tu veux executer. Après en faisant un echo "<?php ".$ma_chaine." ?>"; le code sera executé non pas dans la méthode du plugin mais à l'endroit du hook appelé.
- question: faut-il utiliser ob_end_flush ? J'ai vu que tu as mis la ligne en commentaire. Perso j'executerais cette ligne car sinon on a que l'ob_start executé et pas de fonction qui ferme la bufférisation.
- j'ai modifié la fonction OnDeactivate pour ne pas utiliser la fonction glob car si je me souviens bien sur free.fr par exemple l'utilisation de cette fonction est désactivée. Donc comme il y a un risque avec certains hébergeurs, j'ai préféré une méthode plus classique.
- bien vu: on prefera readfile que file_get_contents (ou autre) car c'est la plus rapide, donc la plus intéressante pour un système de cache.
- le test sur le mode préview je l'ai mis au niveau du constructeur pour conditionner la déclaration du hook du plugin, ce qui est beaucoup plus optimisé. on n'éxecute pas comme ça des lignes inutiles.
- ça serait pas mal d'avoir une option pour vider le répertoire du cache à partir de l'administration. ça peut etre utile car si on fait des modifs online, ça permettra de forcer un rafraichissement du cache.
Voilà, ça sera tout pour le moment
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
Parfait, merci. Je note ça peut resservir.
Clairement, je ne suis pas encore un expert, je bidouille encore pas mal malgré le super PDF pour faire un plugin. Merci pour l'explication, ça aussi je vais m'en resservir je pense. : )
Grande question ... à priori c'est pas la peine, ça génère plus de problèmes qu'autre chose. D'après ce que j'ai compris ob_end_flush est appelé automatiquement à la fin de l'exécution du script c'est donc redondant et il n'est utile que dans certains cas, notament les boucles.
glob est plus optimal, donc je garde glob et je mets un fallback si !function_exists('glob') avec ta méthode. ; )
Oui.
Ah merci, ça aussi je savais pas trop comment m'y prendre. : )
Done pour la v1.2 dispo demain. ; )
C'est déjà pas mal, mais merci pour le coup de main "much appreciated". : )
Je te mets dans les auteurs et dans les crédits, c'est la moindre des choses.
Edit : Ah ah ... t'es là!
Justement je l'ai modifié cet après-midi, ça m'a choqué aussi, j'ai dû copier/coller sans faire attention j'utilise jamais require_once c'est moins optimal que include_once. ; )
++
[list=*]
[*]ajout d'une interface admin pour vider le cache.[/*]
[*]modifications suite aux remarques de Stéphane, merci à lui : )[/*]
[/list]
v1.2 commit sur github
@bankai merci : )
un petit test du GTmerix et 2% de gain ce qui n'est pas moindre chose ...
mais, perso, j'ai ceci, lorsque je clique sur le titre d'un article : mais quoi qu'est-ce encore ??? (avec la version v1.2)
@+
juste je viens de commencer à mettre en ligne : http://www.unesourisetmoi.info/
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Récupère la v1.2 et reteste.
Si tu as un souci précise l'url, ton hébergeur et la version de PHP.
Merci.
il me donne également des erreurs en local sous wamp ... si ça peut t'aider ....
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Une petite question qui me vient comme ça. Comment se comporte le site pour la partie des commentaires. Si un visiteur poste un commentaire, comment réagit le cache ? Le commentaire est visible tout de suite ou il faut attendre l'expiration du cache pour un rafraichissement ?
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
il faut attendre l'expiration du cache. A la limite mettre une durée de cache plus courte.
Mais je comprends que ça puisse généer certains. il faudra étudier la possibilité de dissocier ce qui est mis en cache si c'est possible ... à voir, je note.
regarde ton source, ligne 131 à 133 :
toutes tes apostrophes ' ne sont pas encodées en ' contrairement au reste du source ... commence par remplacer ça pour voir.
C'est la seule page qui bug ou ça fonctionne sur les autres?
En utilisant le hook plxMotorAddCommentaire, tu pourrais supprimer le fichier en cache pour la page en cours de visu. De cette façon au rechargement de la page, elle sera remis en cache avec le nouveau commentaire.
A voir aussi pour les messages d'erreur s'il y a une erreur de capcha ou si une info obligatoire dans le formulaire n'est pas saisie.
Une autre réflexion pour des problèmes similaires: comment ne pas mettre en cache la page affichée avec le moteur de recherche créée avec le plugin MySearch (on peut se poser le meme genre de question pour d'autres pages qu'il ne faut pas mettre en cache). il faudrait surement prendre en compte le mode d'affichage ($plxShow::mode): home, article, categories, archives, tags.
Ce ne sont que des pistes...
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
pour cette page je l'ai régénérée ... et , perso, je ne vois plus rien d'étrange en ligne .... :8
pour le reste j'ai réactivé le plugin et ... mêmes erreurs ^^^ ???
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
T'as raison ça coince avec le captcha, il ne sera pas actualisé puisqu'il est issu du cache à l'instant où tu veux commenter. Faut désactiver le cache en mode article seul.
[del]il faut que je pige comment récupèrer la valeur de $plxShow->plxMotor->mode mais au niveau de mon plugin (dans le header.php de mon theme c'est bon ça echo 'article') pour savoir si c'est un article ... un petit coup de main stp je rame un peu ... : )[/del]
C'est bon je viens de trouver : )
OK mais je suis pas madame Soleil alors c'est quoi les erreurs cette fois?
@+
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
De la même façon que le test pour savoir si on n'est pas en mode préview, tu peux rajouter celui-ci De cette façon le résultat des formulaires ne seront pas mis en cache (cas du moteur de recherche par exemple)
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
Les pages issues de POST ne sont pas mises en cache.
voir le sur github
v1.4
fix POST v1.4
- sur : http://blog.unesourisetmoi.info/
installé, paramétré et OK ... les tests faits montrent son efficacité
mais sur : http://www.unesourisetmoi.info/
si je prodèce de la même manière, tout semble fonctionner SAUF si je clique sur un lien (en sidebar ou dans une page) qui dirige vers un article ^^ et là : alors là ... ???
où se trouve le schimilimiblk ....
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
quelles erreurs as-tu trouvées ?
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Je crois pas qu'il existe un plugin PluXML pour modifier du code foireux en code propre ... :P
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Est-ce que quelqu'un peu m'expliquer la différence avec BoostMyPlux ?
Un intérêt de les cumuler sur un même site ? Vaut mieux t'il l'un ou l'autre ? Et pourquoi ?
Oui je me suis mis en mode chiant, désolé.
Merci d'avance pour vos réponses.