Bonjour à tous,

J'aimerais intégrer sur mon projet Symfony 2 APC Cache pour doctrine afin d'optimiser au mieux mon projet .

J'ai plusieurs questions qui me viennent avant de commencer l'opération...

Dans la doc de Symfony 2 section Performance,

On nous dit de remplacer le "UniversalClassLoader" par "ApcUniversalClassLoader"

De ce que j'ai compris cette opération sert à charger les fichiers plus rapidement car le loader met le chemin du fichier dans APC afin de pas parcourir toutes les classes lors du prochain appel, ai-je bien compris ?

Ensuite, en fouillant sur le net (doc de symfony et blog d'un gars) et en fouillant dans le fichier config_prod.yml dans mon projet Symfony, j'ai trouvé deux exemple de configuration pour utiliser APC avec Doctrine 2.

Premier exemple de config :

Dans le fichier config_prod.yml on peut décomenter les lignes suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
doctrine:
    orm:
        metadata_cache_driver: apc
        result_cache_driver: apc
        query_cache_driver: apc
Deuxième exemple de config :

Dans le fichier config.yml, sur un blog j'ai trouvé cette configuration :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
doctrine:
#...
    orm:
        auto_generate_proxy_classes: %kernel.debug%
        #auto_mapping: true
        default_entity_manager: default
        entity_managers:
            default:
                metadata_cache_driver: apc
                result_cache_driver: apc
                query_cache_driver: apc
                connection: default
                mappings:
                   SurgeworksCoreBundle: { type: annotation, dir: Entity/ }
Donc on en vient à mes questions :

Quelle est la config à choisir entre les deux ? sont-elles équivalente ?
Dans la deuxième config, à quoi sert l'option "mapping" ? il est mentionné "required" dans la doc mais que faut -t-il mettre dedans au juste ?

J'ai lu le tuto complet APC sur developpez mais je n'ai malheureusement pas trouvé mes réponses...

Autre chose, j'ai vu dans les bundles du site knp qu'il existait des bundle pour APC comme le profilerAPC développé par stealth35 mais je n'ai pas vraiment compris à quoi ce bundle servait ?

Une fois APC mis en place, dois-je toucher mon code pour envoyé les résultats de mes requêtes dans le cache (avec par exemple les commandes apc_cadd, apc_delete, apc_fetch..) ou doctrine s'occupe lui même de les mettre en cache ?

Dernière question, après avoir activé APC sur mon projet, comment puis-je "vérifier" qu'il fonctionne bien ? ou puis-je voir le contenu de se qui se met dans le cache ? j'ai trouvé des bundles pour vider le cache à partir d'un commande symfony (php app/console...) est-ce le seul moyen de vider le cache ?

Donc voila si qqn peut m'apporter des réponses ou parties de réponses, ç m'aiderait bien

Merci à tous !