IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ SymfonyConsultez toutes les FAQ

Nombre d'auteurs : 17, nombre de questions : 81, dernière mise à jour : 18 juin 2017  Ajouter une question

 

Les questions redondantes se multipliant sur le forum Symfony, nous avons choisi de créer cette FAQ afin de regrouper les questions qui sont posées fréquemment.

Vos remarques et idées sont les bienvenues. Et pourquoi pas votre aide ! S'il vous prend l'envie de tailler votre plus belle plume et de retrousser vos manches, il y a de quoi faire !

SommaireSymfony 2Gestion du cache sur Symfony 2 (1)
précédent sommaire suivant
 

Symfony2 utilise nativement APC pour mettre en cache les fichiers PHP. Mais, il est possible de mettre en cache tout le code et tout type de données PHP.

APC fait la distinction entre cache de fichiers PHP et cache personnalisé.

Voici un exemple d'une action de contrôleur affichant certains flux RSS sur une page d'accueil. Dans, cet exemple, on ne veut pas charger le flux chaque fois qu'un utilisateur charge la page d'accueil. TToute la réponse HTTP de l'action rssAction a donc été mise en cache.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
/** 
    * Route ; _home_rssNews 
    * @return Symfony\Component\HttpFoundation\Response 
    */ 
   public function rssAction() 
   { 
      //On récupère le cache avant tout 
  
      $cacheDriver = new ApcCache(); 
  
      //Si le cache existe et n'est pas expiré pour _home_rssNews, on retourne simplement son contenu ! 
      if ($cacheDriver->contains('_home_rssNews')) 
      { 
         return $cacheDriver->fetch('_home_rssNews'); 
      } 
  
      //Sinon, on construit la Response comme d'habitude et on la met en cache ! 
  
      $viewVars = array (); 
  
      // FLUX RSS BLOG 
      $rssB = $this->fluxRssBlog('my_blog_rss_stream')); 
      //FLUX RSS TWITTER 
      $rssT = $this->fluxRssTwitter('my_twitter_rss_stream')); 
  
      $viewVars['rssB'] = $rssB; 
      $viewVars['rssT'] = $rssT; 
      $response = $this->render('BundlesMyBundle:Default:rssNews.html.twig', $viewVars); 
  
      //Ici nous mettons la réponse en cache pour une durée de 15 minutes (900 secondes) ! 
      $cacheDriver->save('_home_rssNews', $response, "900"); 
  
      return $response; 
   }

Mis à jour le 14 novembre 2015 pc.bertineau Siguillaume

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2021 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.