SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Optimisation des performances
d’un site sous TYPO3


                 Aliénor.net : Agence web basée à Bordeaux

               Alexandre Gravel-Raymond, Développeur web

                             a.gravel-raymond@alienor.net
Plan


I – Présentation de TYPO3

II - Performance et limites du fonctionnement natif

III - Les solutions
Solution d'entreprise

Plus de 4000 extensions sur le TYPO3 Extension
Repository (TER)
Gestion multilingue, multidomaine
Workflows
Gestion fine des droits utilisateurs
Rétrocompatibilité primordiale

                  I – Présentation de TYPO3
         II - Performance et limites du fonctionnement natif
                          III - Les solutions
Sites web basés sur TYPO3




            I – Présentation de TYPO3
   II - Performance et limites du fonctionnement natif
                    III - Les solutions
Typoscript

Langage de configuration en arbre formant des
templates

Pas de fonctions (mais des références vers des
fonctions PHP)

Pas de variables (mais la possibilité d’utiliser un
registre pour échanger des informations)


                   I – Présentation de TYPO3
          II - Performance et limites du fonctionnement natif
                           III - Les solutions
Critiques apportées à TYPO3



L’utilisateur final: impression de lenteur.
L’administrateur système: charge serveur pouvant
devenir importante sur des sites complexes.




                   I – Présentation de TYPO3
          II - Performance et limites du fonctionnement natif
                           III - Les solutions
Performance et limites du
fonctionnement natif
Solutions au problème des
      performances


Deux pistes de réflexion:
    Gestion fine du cache
    Rendre le système plus léger




                        I – Présentation de TYPO3
          II - Performance et limites du fonctionnement natif
                            III - Les solutions
Fonctionnement de base du
    cache
Les objets typoscript (cObjects) formant un template se
divisent en deux :




                      I – Présentation de TYPO3
        II - Performance et limites du fonctionnement natif
                          III - Les solutions
Lors d’une requête sur une
page non présente en cache




               I – Présentation de TYPO3
 II - Performance et limites du fonctionnement natif
                   III - Les solutions
Lors d’une requête sur une
page non présente en cache




               I – Présentation de TYPO3
 II - Performance et limites du fonctionnement natif
                   III - Les solutions
Limite du fonctionnement natif



Toutes les requêtes, y compris celles concernant les
pages déjà en cache, passent par le moteur de
TYPO3
Celui-ci est (très) gourmand en ressources serveur




                   I – Présentation de TYPO3
     II - Performance et limites du fonctionnement natif
                       III - Les solutions
Les solutions
Solution fournie par la communauté :
  nc_staticfilecache



Extension développée par Netcreators
Multiplie la vitesse de livraison de certaines pages par
230 !




                       I – Présentation de TYPO3
          II - Performance et limites du fonctionnement natif
                        III - Les solutions
Extension nc_staticfilecache


Enregistre le rendu dans un fichier HTML statique
Ce fichier est délivré directement par le serveur web s’il existe
Le moteur de TYPO3 n’est pas chargé !
Si le cache statique n’existe pas, le rendu se déroule
normalement




                           I – Présentation de TYPO3
              II - Performance et limites du fonctionnement natif
                            III - Les solutions
Avantages de nc_staticfilecache


Suit le vidage de cache « standard » de TYPO3
Possibilité d’étendre les règles de livraison de cache
statique :
   Ex : Cookie identifiant les utilisateurs devant avoir
   une version 100% dynamique
Possibilité de désactiver pour une page donnée



                    I – Présentation de TYPO3
        II - Performance et limites du fonctionnement natif
                         III - Les solutions
Mise en place de nc_staticfilecache


Nécessite Apache et mod_rewrite
Téléchargement et installation de l’extension :
   http://forge.typo3.org/projects/extension-nc_staticfilecache



Règles de réécritures fournies dans le .htaccess
Ajout du job cron effectuant la suppression des pages
expirées


                        I – Présentation de TYPO3
           II - Performance et limites du fonctionnement natif
                         III - Les solutions
Contraintes de nc_staticfilecache

Aucune page contenant des objets sans cache (_INT)
n’aura de cache statique

Solution pour « personnaliser » le contenu d’une page :
utiliser de l’AJAX !

Les requêtes POST sont exclues, pour que les formulaires
soient dynamiques.

Tous les paramètres de l’URL doivent être réécris (avec
l’extension realurl ou cooluri)

                          I – Présentation de TYPO3
             II - Performance et limites du fonctionnement natif
                           III - Les solutions
Si nc_staticfilecache ne peut être
 utilisé



Utilisation de Memcached : un système de cache
mémoire distribué
Permet de mettre en cache le résultat de traitements
complexes fréquemment effectués




                I – Présentation de TYPO3
    II - Performance et limites du fonctionnement natif
                     III - Les solutions
Peaufiner le résultat : réduire le
    nombre de requêtes


Outils de fusion/minification de CSS et de JS
 scriptmerger : Configuration extensive, possibilité
 d’exclure des fichiers
 load_optimization : Compression HTML, seuls les fichiers
 ajoutés via l’API typoscript sont traités
 js_css_optimizer : Utilise la nouvelle API du moteur de
 rendu, gestion fine fichier par fichier
 minify : Simple d’utilisation



                        I – Présentation de TYPO3
           II - Performance et limites du fonctionnement natif
                         III - Les solutions
Solutions architecturales


Utiliser eAccelerator pour améliorer les performances
PHP
Utiliser Nginx comme proxy pour délivrer les fichiers
statiques (plus léger qu’Apache)




                      I – Présentation de TYPO3
         II - Performance et limites du fonctionnement natif
                       III - Les solutions
Nouveaux systèmes de cache de
   TYPO3


Depuis la version 4.3 vers FLOW3

Utilisation de divers backend de cache : fichiers,
mémoire, MySQL

Transparent pour le développeur, beaucoup plus
flexible

enetcache : Extension ajoutant une couche API pour
les plugins.


                        I – Présentation de TYPO3
           II - Performance et limites du fonctionnement natif
                         III - Les solutions
Les bonnes pratiques
Bonne pratique #1


Tu ne désactiveras point le cache. Si tu rencontres des
problèmes de cache, ces méthodes sont à fuir :
   www.example.com/?no_cache=1
   $GLOBALS[‘TSFE’]->set_no_cache() ;
   config.no_cache = 1 (template typoscript)
   Case « Sans cache » cochée dans les propriétés de page




                       I – Présentation de TYPO3
          II - Performance et limites du fonctionnement natif
                        III - Les solutions
Bonne pratique #2



Tu adapteras la durée du cache à la typologie du projet
       Ex : minimum 1 jour pour un site de publication
       « classique »
Tu videras le cache d’une page donnée
automatiquement lors d’une modification
       Dans le Page TSConfig : TCEMAIN.clearCacheCmd =
       1,2,3

                      I – Présentation de TYPO3
         II - Performance et limites du fonctionnement natif
                       III - Les solutions
Bonne pratique #3




Tu auditeras les extensions utilisées
Avec l’aide de la communauté…




                      I – Présentation de TYPO3
         II - Performance et limites du fonctionnement natif
                       III - Les solutions
Bonne pratique #4




Tu désinstalleras les extensions non utilisées, malgré le
mécanisme d’autoloading introduit dans TYPO3 4.3,
pour éviter de charger inutilement du code PHP et
typoscript


                          I – Présentation de TYPO3
             II - Performance et limites du fonctionnement natif
                           III - Les solutions
Bonne pratique #5



Tu diminueras la complexité des templates typoscript
Il est possible d’effectuer des tâches très complexes en
pur typoscript, mais il est parfois plus efficace (et lisible)
d’encapsuler la fonctionnalité dans une classe PHP.




                       I – Présentation de TYPO3
          II - Performance et limites du fonctionnement natif
                        III - Les solutions
Bonne pratique #6


Tu éviteras si possible de passer par le moteur de TYPO3
Les pages 404 ont-elle besoin de tout le moteur ?
 Préférer l'utilisation de la déclaration ErrorDocument
 dans un fichier .htaccess
Les scripts AJAX peuvent être externalisés :
 Utiliser la méthode standard de TYPO3 :
 www.example.com/index.php?eID=mon_ajax
 Ne charge que les classes indispensables du coeur de TYPO3.

                         I – Présentation de TYPO3
            II - Performance et limites du fonctionnement natif
                          III - Les solutions
Bonne pratique #7



Tu ajouteras des index aux tables SQL créées pour les
extensions développées, notamment si elles ont été
créées par le Kickstarter




                       I – Présentation de TYPO3
          II - Performance et limites du fonctionnement natif
                        III - Les solutions
Sources et lectures
http://wiki.typo3.org/index.php/Performance_tuning
http://typo3.org/development/articles/testing-and-
tuning-typo3-performance/
http://techblog.evo.pl/en/evo_nginx_boost-extension/
http://www.typofree.org/article/archive/2009/august/
title/enabling-nc-staticfilecache-in-typo3-nginx/
http://typo3.org/development/articles/using-cache-
control-headers-in-typo3/

Contenu connexe

En vedette

Make Your TYPO3 Web Sites Fly
Make Your TYPO3 Web Sites FlyMake Your TYPO3 Web Sites Fly
Make Your TYPO3 Web Sites Flyjweiland
 
T3EE2013 community
T3EE2013 communityT3EE2013 community
T3EE2013 communityAge of Peers
 
Communication and Trust - TYPO3camp Poland 2013
Communication and Trust - TYPO3camp Poland 2013Communication and Trust - TYPO3camp Poland 2013
Communication and Trust - TYPO3camp Poland 2013Age of Peers
 
Cms africa-typo3-community.odp
Cms africa-typo3-community.odpCms africa-typo3-community.odp
Cms africa-typo3-community.odpAge of Peers
 
TYPO3 CMS deployment with Jenkins CI
TYPO3 CMS deployment with Jenkins CITYPO3 CMS deployment with Jenkins CI
TYPO3 CMS deployment with Jenkins CIderdanne
 
Disrupt TYPO3: Thinking the Unthinkable. Challenge our thinking and create a ...
Disrupt TYPO3: Thinking the Unthinkable. Challenge our thinking and create a ...Disrupt TYPO3: Thinking the Unthinkable. Challenge our thinking and create a ...
Disrupt TYPO3: Thinking the Unthinkable. Challenge our thinking and create a ...Age of Peers
 
TYPO3 presentation CeBIT 2010
TYPO3 presentation CeBIT 2010TYPO3 presentation CeBIT 2010
TYPO3 presentation CeBIT 2010Age of Peers
 
TYPO3 Scalability for high traffic sites
TYPO3 Scalability for high traffic sitesTYPO3 Scalability for high traffic sites
TYPO3 Scalability for high traffic sitesdanospv
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

En vedette (13)

Make Your TYPO3 Web Sites Fly
Make Your TYPO3 Web Sites FlyMake Your TYPO3 Web Sites Fly
Make Your TYPO3 Web Sites Fly
 
T3EE2013 community
T3EE2013 communityT3EE2013 community
T3EE2013 community
 
T3DD12 Keynote
T3DD12 KeynoteT3DD12 Keynote
T3DD12 Keynote
 
Communication and Trust - TYPO3camp Poland 2013
Communication and Trust - TYPO3camp Poland 2013Communication and Trust - TYPO3camp Poland 2013
Communication and Trust - TYPO3camp Poland 2013
 
Cms africa-typo3-community.odp
Cms africa-typo3-community.odpCms africa-typo3-community.odp
Cms africa-typo3-community.odp
 
TYPO3 CMS deployment with Jenkins CI
TYPO3 CMS deployment with Jenkins CITYPO3 CMS deployment with Jenkins CI
TYPO3 CMS deployment with Jenkins CI
 
Disrupt TYPO3: Thinking the Unthinkable. Challenge our thinking and create a ...
Disrupt TYPO3: Thinking the Unthinkable. Challenge our thinking and create a ...Disrupt TYPO3: Thinking the Unthinkable. Challenge our thinking and create a ...
Disrupt TYPO3: Thinking the Unthinkable. Challenge our thinking and create a ...
 
TYPO3 presentation CeBIT 2010
TYPO3 presentation CeBIT 2010TYPO3 presentation CeBIT 2010
TYPO3 presentation CeBIT 2010
 
TYPO3 Scalability for high traffic sites
TYPO3 Scalability for high traffic sitesTYPO3 Scalability for high traffic sites
TYPO3 Scalability for high traffic sites
 
TYPO3 
Infrastructure
TYPO3 
InfrastructureTYPO3 
Infrastructure
TYPO3 
Infrastructure
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 

Similaire à Optimisation des performances d’un site sous TYPO3

Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3sitengo
 
RMLL 2011 - TYPO3 le CMS de référence au gouvernement du Québec
RMLL 2011   - TYPO3 le CMS de référence au gouvernement du QuébecRMLL 2011   - TYPO3 le CMS de référence au gouvernement du Québec
RMLL 2011 - TYPO3 le CMS de référence au gouvernement du QuébecYannick Pavard
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB MongoDB
 
Communiqué de presse TYPO3 V4.4
Communiqué de presse TYPO3 V4.4Communiqué de presse TYPO3 V4.4
Communiqué de presse TYPO3 V4.4Christophe Delauve
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesOxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieLoic Yon
 
TYPO3, le CMS de référence au gouvernement québécois
TYPO3, le CMS de référence au gouvernement québécoisTYPO3, le CMS de référence au gouvernement québécois
TYPO3, le CMS de référence au gouvernement québécoisYannick Pavard
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesVincent Composieux
 
UTOPIA : une extension pour faire de TYPO3 une usine à sites
UTOPIA : une extension pour faire de TYPO3 une usine à sitesUTOPIA : une extension pour faire de TYPO3 une usine à sites
UTOPIA : une extension pour faire de TYPO3 une usine à sitesIn Cité Solution
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementgplanchat
 
Ugif 04 2011 consulti x mediawiki - ugif
Ugif 04 2011   consulti x mediawiki - ugifUgif 04 2011   consulti x mediawiki - ugif
Ugif 04 2011 consulti x mediawiki - ugifUGIF
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBMongoDB
 

Similaire à Optimisation des performances d’un site sous TYPO3 (20)

Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3
 
TYPO3 : quelles nouveautés en 2018 ?
TYPO3 : quelles nouveautés en 2018 ? TYPO3 : quelles nouveautés en 2018 ?
TYPO3 : quelles nouveautés en 2018 ?
 
RMLL 2011 - TYPO3 le CMS de référence au gouvernement du Québec
RMLL 2011   - TYPO3 le CMS de référence au gouvernement du QuébecRMLL 2011   - TYPO3 le CMS de référence au gouvernement du Québec
RMLL 2011 - TYPO3 le CMS de référence au gouvernement du Québec
 
Introduction webextensions
Introduction webextensionsIntroduction webextensions
Introduction webextensions
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Communiqué de presse TYPO3 V4.4
Communiqué de presse TYPO3 V4.4Communiqué de presse TYPO3 V4.4
Communiqué de presse TYPO3 V4.4
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partie
 
TYPO3, le CMS de référence au gouvernement québécois
TYPO3, le CMS de référence au gouvernement québécoisTYPO3, le CMS de référence au gouvernement québécois
TYPO3, le CMS de référence au gouvernement québécois
 
Outils front-end
Outils front-endOutils front-end
Outils front-end
 
Formation NoSQL
Formation NoSQLFormation NoSQL
Formation NoSQL
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, Kubernetes
 
UTOPIA : une extension pour faire de TYPO3 une usine à sites
UTOPIA : une extension pour faire de TYPO3 une usine à sitesUTOPIA : une extension pour faire de TYPO3 une usine à sites
UTOPIA : une extension pour faire de TYPO3 une usine à sites
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplement
 
Ugif 04 2011 consulti x mediawiki - ugif
Ugif 04 2011   consulti x mediawiki - ugifUgif 04 2011   consulti x mediawiki - ugif
Ugif 04 2011 consulti x mediawiki - ugif
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
 

Optimisation des performances d’un site sous TYPO3

  • 1. Optimisation des performances d’un site sous TYPO3 Aliénor.net : Agence web basée à Bordeaux Alexandre Gravel-Raymond, Développeur web a.gravel-raymond@alienor.net
  • 2. Plan I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 3. Solution d'entreprise Plus de 4000 extensions sur le TYPO3 Extension Repository (TER) Gestion multilingue, multidomaine Workflows Gestion fine des droits utilisateurs Rétrocompatibilité primordiale I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 4. Sites web basés sur TYPO3 I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 5. Typoscript Langage de configuration en arbre formant des templates Pas de fonctions (mais des références vers des fonctions PHP) Pas de variables (mais la possibilité d’utiliser un registre pour échanger des informations) I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 6. Critiques apportées à TYPO3 L’utilisateur final: impression de lenteur. L’administrateur système: charge serveur pouvant devenir importante sur des sites complexes. I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 7. Performance et limites du fonctionnement natif
  • 8. Solutions au problème des performances Deux pistes de réflexion: Gestion fine du cache Rendre le système plus léger I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 9. Fonctionnement de base du cache Les objets typoscript (cObjects) formant un template se divisent en deux : I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 10. Lors d’une requête sur une page non présente en cache I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 11. Lors d’une requête sur une page non présente en cache I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 12. Limite du fonctionnement natif Toutes les requêtes, y compris celles concernant les pages déjà en cache, passent par le moteur de TYPO3 Celui-ci est (très) gourmand en ressources serveur I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 14. Solution fournie par la communauté : nc_staticfilecache Extension développée par Netcreators Multiplie la vitesse de livraison de certaines pages par 230 ! I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 15. Extension nc_staticfilecache Enregistre le rendu dans un fichier HTML statique Ce fichier est délivré directement par le serveur web s’il existe Le moteur de TYPO3 n’est pas chargé ! Si le cache statique n’existe pas, le rendu se déroule normalement I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 16. Avantages de nc_staticfilecache Suit le vidage de cache « standard » de TYPO3 Possibilité d’étendre les règles de livraison de cache statique : Ex : Cookie identifiant les utilisateurs devant avoir une version 100% dynamique Possibilité de désactiver pour une page donnée I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 17. Mise en place de nc_staticfilecache Nécessite Apache et mod_rewrite Téléchargement et installation de l’extension : http://forge.typo3.org/projects/extension-nc_staticfilecache Règles de réécritures fournies dans le .htaccess Ajout du job cron effectuant la suppression des pages expirées I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 18. Contraintes de nc_staticfilecache Aucune page contenant des objets sans cache (_INT) n’aura de cache statique Solution pour « personnaliser » le contenu d’une page : utiliser de l’AJAX ! Les requêtes POST sont exclues, pour que les formulaires soient dynamiques. Tous les paramètres de l’URL doivent être réécris (avec l’extension realurl ou cooluri) I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 19. Si nc_staticfilecache ne peut être utilisé Utilisation de Memcached : un système de cache mémoire distribué Permet de mettre en cache le résultat de traitements complexes fréquemment effectués I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 20. Peaufiner le résultat : réduire le nombre de requêtes Outils de fusion/minification de CSS et de JS scriptmerger : Configuration extensive, possibilité d’exclure des fichiers load_optimization : Compression HTML, seuls les fichiers ajoutés via l’API typoscript sont traités js_css_optimizer : Utilise la nouvelle API du moteur de rendu, gestion fine fichier par fichier minify : Simple d’utilisation I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 21. Solutions architecturales Utiliser eAccelerator pour améliorer les performances PHP Utiliser Nginx comme proxy pour délivrer les fichiers statiques (plus léger qu’Apache) I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 22. Nouveaux systèmes de cache de TYPO3 Depuis la version 4.3 vers FLOW3 Utilisation de divers backend de cache : fichiers, mémoire, MySQL Transparent pour le développeur, beaucoup plus flexible enetcache : Extension ajoutant une couche API pour les plugins. I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 24. Bonne pratique #1 Tu ne désactiveras point le cache. Si tu rencontres des problèmes de cache, ces méthodes sont à fuir : www.example.com/?no_cache=1 $GLOBALS[‘TSFE’]->set_no_cache() ; config.no_cache = 1 (template typoscript) Case « Sans cache » cochée dans les propriétés de page I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 25. Bonne pratique #2 Tu adapteras la durée du cache à la typologie du projet Ex : minimum 1 jour pour un site de publication « classique » Tu videras le cache d’une page donnée automatiquement lors d’une modification Dans le Page TSConfig : TCEMAIN.clearCacheCmd = 1,2,3 I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 26. Bonne pratique #3 Tu auditeras les extensions utilisées Avec l’aide de la communauté… I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 27. Bonne pratique #4 Tu désinstalleras les extensions non utilisées, malgré le mécanisme d’autoloading introduit dans TYPO3 4.3, pour éviter de charger inutilement du code PHP et typoscript I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 28. Bonne pratique #5 Tu diminueras la complexité des templates typoscript Il est possible d’effectuer des tâches très complexes en pur typoscript, mais il est parfois plus efficace (et lisible) d’encapsuler la fonctionnalité dans une classe PHP. I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 29. Bonne pratique #6 Tu éviteras si possible de passer par le moteur de TYPO3 Les pages 404 ont-elle besoin de tout le moteur ? Préférer l'utilisation de la déclaration ErrorDocument dans un fichier .htaccess Les scripts AJAX peuvent être externalisés : Utiliser la méthode standard de TYPO3 : www.example.com/index.php?eID=mon_ajax Ne charge que les classes indispensables du coeur de TYPO3. I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  • 30. Bonne pratique #7 Tu ajouteras des index aux tables SQL créées pour les extensions développées, notamment si elles ont été créées par le Kickstarter I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions