Je voudrais savoir s'il existe une procédure préférée pour les éléments suivants:
- Vidange du cache Magento
- Activation / désactivation du compilateur Magento
1. Rinçage du cache Magento
Il y a quelques options ici, à savoir:
- Vérification des éléments de campagne et envoi d'une actualisation dans la
Actions
liste déroulante - Cliquer sur le
Flush Magento Cache
bouton, et - Cliquer sur le
Flush Storage Cache
bouton
Y a-t-il un ordre préféré dans lequel procéder? Quelle est la différence entre le cache Magento et le cache de stockage?
2. Activation / désactivation du compilateur Magento
a) Activation du compilateur
Quand il s'agit d'activer le compilateur Magento, doit-on activer tous les caches de magasin? Ou devez-vous activer les caches uniquement après avoir activé le compilateur et exécuté le processus de compilation? Une fois que vous avez activé le compilateur, devez-vous actualiser tous les caches? Et si oui, cela inclut-il le vidage du cache Magento et du cache de stockage (comme mentionné ci-dessus)
b) Désactiver le compilateur
Quand il s'agit de désactiver le compilateur Magento, devez-vous d'abord désactiver tous les caches, puis les réactiver une fois qu'il a été désactivé?
Y a-t-il une différence entre laisser les caches et désactiver / activer le compilateur? Quel impact sur les performances cela entraîne-t-il?
Toute entrée serait très apprécié
Réponses:
Vider le cache Magento - Cela efface le cache (var / cache) de tous les éléments que Magento sait qu'il a créés.
Flush Cache Storage - Efface tout dans var / cache, quelle que soit la façon dont ces fichiers ont été créés.
Donc, si vous voulez être sûr de tout effacer, vous pouvez choisir " Flush Cache Storage " qui effacera essentiellement var / cache.
Pour le compilateur, je recommanderais de vider le cache Magento après avoir activé la compilation et exécuté le processus de compilation. Cela garantit que le cache est effacé de toutes les données non compilées.
Lors de la désactivation de la compilation, je la désactiverais d'abord, puis viderais le cache Magento par la suite. Cela garantit à nouveau que le cache est vide de toutes les données compilées.
À moins que vous ne testiez beaucoup les choses, je recommanderais toujours de laisser les caches. La compilation peut être aléatoire en termes de performances. Je l'ai vu accélérer les choses et la compilation a souvent ralenti les choses et causé des problèmes avec les extensions tierces. Je recommanderais d'obtenir une référence pour le temps de chargement d'une page de catégorie (en utilisant les outils Firebug / développeur) avec la compilation désactivée, puis à nouveau avec la compilation activée, et voir s'il y a une grande différence.
Vous feriez probablement mieux d'utiliser des choses comme un cache d'opcode en PHP, une bonne mise en cache des requêtes MySQL, une combinaison de fichiers css / js, une compression gzip, une extension de cache de page complète et des paramètres appropriés pour la mise en cache des fichiers par le navigateur.
la source
Le cache Magento n'est pas différent. En commençant par les bases, les options de cache peuvent être affichées en accédant à
dans le backend. Vous pouvez voir les différents domaines de mise en cache qui peuvent être activés / désactivés, tels que les configurations, les fichiers layout.xml, les blocs, la page entière et les fichiers api. De toute évidence, l'idéal est d'activer tous ces éléments une fois le site en ligne.
Le cache peut également être vidé ou vidé à partir d'ici. Appuyez sur le bouton étiqueté
“Flush Magento Cache”
pour vider tous les fichiers de cache qui correspondent à un certain ensemble de balises par défaut intégrées que Magento utilise. Il s'agit de la méthode «plus sûre» pour vider le cache, car elle n'efface pas absolument tout. Si vous utilisez un type de cache secondaire, cliquez sur“Flush Cache Storage”
pour vous assurer que vous avez vidé votre cache, car il efface TOUT. Les deux autres boutons que vous voyez sur la page d'administration effaceront les images javascript et css et les images de catalogue.Un moyen alternatif et légèrement moins sûr de vider le cache consiste à accéder à
et supprimer manuellement tous les fichiers. De même pour
si le cache pleine page est activé.
Le cache pleine page, disponible sur l'édition Enterprise, accélère votre site de 10 fois, mais il est important d'en savoir un peu plus à ce sujet, au cas où vous remarqueriez un contenu dynamique mis en cache. Un fichier intéressant à regarder est
Ici, vous pouvez voir ce qui est mis en cache par FPC, le nom du bloc, le nom du conteneur et la durée de vie de la session. Si vous trouvez qu'il est absolument nécessaire de modifier ou de supprimer l'un de ces blocs du cache, vous pouvez le faire en créant un module dépendant du module PageCache et en y plaçant toutes les modifications.
La balise d'espace réservé indique au FPC que ce bloc est considéré comme dynamique. Lorsqu'une page est chargée, si le bloc n'est pas encore dans le cache, cette valeur d'ID dans les balises d'espace réservé est recherchée dans le cache, et si elle n'existe pas, ce bloc est appelé et généré, et l'ID est ajouté à le cache.
La fonction de compilation de Magento se trouve sous
Si vous exécutez une nouvelle installation, vous obtenez probablement un message système indiquant que les deux
includes and includes/src/
répertoires doivent être rendus accessibles en écriture. Lorsque cela est fait, nous pouvons appuyer sur le bouton `` Exécuter le processus de compilation '' et vous avez pratiquement terminé, le cœur de Magento utilise la compilation.Lorsque Magento compile son code source, le framework fait quelques choses. Étant soit déclenchée par l'administrateur ou
shell, see shell/compiler.php
, toute la compilation se fait par une seule classe:Mage_Compiler_Model_Process
. Dans cette classe, vous trouverez l'extrait suivant qui est en fait une vue à vol d'oiseau de l'ensemble du processus.Lancé par l'
$this->_collectFiles();
appel, Magento copie tous les fichiers PHP des deuxet les répertoires lib au
annuaire. Comme vous pouvez le voir dans l'extrait ci-dessous: pendant ce processus, Magento parcourt récursivement tous les fichiers et répertoires. Ces chemins sont finalement utilisés comme nom de fichier. Lorsque le processus récursif frappe un fichier, il recherche une extension PHP et, lorsqu'il est trouvé, le fichier est copié dans le répertoire du compilateur. Les autres types de fichiers ne sont pas modifiés.
A titre d'exemple: le chemin de la classe Mage_Catalog_Model_Category était
mais, avec la compilation activée, est devenu
Les contrôleurs reçoivent un autre traitement. Tous les répertoires du contrôleur sont copiés dans
mais sont stockés dans un répertoire qui porte le nom de son espace de noms associé, pensez: Mage, Enterprise ou votre propre espace de noms donné.
Dans ces répertoires d'espace de noms, les contrôleurs sont stockés par module et la structure du répertoire des contrôleurs reste intacte. Il en va de même pour le nom de fichier, c'est juste une copie exacte. Toute cette logique se retrouve dans la méthode suivante
$this->_copyControllers($path);
Ce deuxième niveau de compilation recueille toutes les étendues et leurs listes de classes respectives auprès de l'administrateur. Toutes ces étendues sont en cours de traitement en récupérant le contenu des fichiers de classe associés et en les écrivant dans un seul fichier nommé d'après l'étendue donnée.
Par défaut, Magento crée quatre fichiers de portée différents:
Pendant le processus de construction de ces fichiers de portée, Magento analyse automatiquement toutes les extensions de classe et les interfaces qui sont utilisées par les classes fournies dans la liste de portée.
Avec tous les fichiers en place et compilés, Magento est prêt à activer la fonction de compilation pour une utilisation.
Enfin, la configuration liée à la compilation est ajustée. Ce fichier se trouve sur
includes/config.php
et contient les deux constantes suivantes. Lors de l'activation de la compilation, la ligne concernant COMPILER_INCLUDE_PATH n'est pas commentée et est donc prête à l'action.Le code responsable de l'ajustement du fichier de configuration se trouve dans la méthode registerIncludePath du
Mage_Compiler_Model_Process class
.Pendant le bootstrap, le fichier de configuration de la compilation est inclus dans le
index.php file (around line 44)
. Cela rend les constantes include_path disponibles dans tout le framework. Le collect_path est quelque chose que vous ne pouvez activer que manuellement pour obtenir plus d'informations statistiques sur l'utilisation de vos fichiers compilés. Cela ne devrait pas être activé en direct.À partir de ce moment, Magento vérifiera si le mode de compilation est activé avec l'instruction suivante. En parcourant la base de code (en utilisant 'grep'), vous remarquerez que la majeure partie de cette logique se trouve dans le
lib/Varien/Autoload.php
fichier.L'autre endroit à rechercher est le
Mage_Core_Controller_Varien_Action
. Dans cette classe, vous trouverez lapreDispatch()
méthode, qui est déclenchée pour chaque méthode d'action de contrôleur avant que la méthode ne soit réellement envoyée. Dans cette partie de la classe du chargeur automatique de Magento source, Varien_Autoload est appelé pour charger un fichier d'étendue de compilation spécifique.Lors de l'exécution en mode de compilation, Magento n'a qu'un seul chemin d'inclusion, le
includes/src/
répertoire, donc chaque fichier est trouvé directement au premier essai. Avec la quantité considérable de fichiers de Magento, cela fait gagner un peu de temps. L'extrait en dessous est tiré de laLorsque PHP inclut un fichier, le contenu est compilé en opcode. Il s'agit d'un processus qui doit être effectué chaque fois qu'un fichier est inclus. Pour améliorer encore les performances de votre boutique, vous pouvez installer APC sur votre serveur. APC met en cache les versions opcodées des fichiers, les rendant disponibles pour les requêtes suivantes. Donc, à la prochaine demande: le fichier sera lu à partir du cache APC, au lieu de devoir recommencer le même processus et de drainer vos performances.
la source
COMPILATEUR
Tous les fichiers du compilateur se trouvent dans
includes/
Just Don't wipe.htaccess
ouconfig.php
. Si vous affichezconfig.php
Vous remarquerez que l'activation / la désactivation du compilateur supprime les commentaires#
avant les deuxdefine
. Il est sûr de supposer qu'un simple àrm -Rf includes/src;rm -Rf includes/stat
partir de la racine Magento effacera les données compilées.Pensez également à utiliser AOE_ClassPathCache avec APC, car ce sera de loin suffisant pour supprimer le compilateur de l'équation.
Aussi pour plus de discussion sur le sujet:
CACHES
Ceci est purement défini sur les backends de cache que vous utilisez via votre
local.xml
. Si vous utilisez le gestionnaire defiles
cache par défaut , effacezvar/cache
et si Enterprisevar/full_page_cache
. Si vous utilisez un magasin de données tel que Memcache, vous devrez le faire via MagentoFlush Cache Storage
ou via un moyen que le magasin de données du cache doit effacer / effacer son cache.Aussi plus de détails sur les magasins de données possibles, Magento utilise Zend_Cache pour ses mécanismes de mise en cache. Ce que vous remarquerez concerne les
local.xml
Xpath du cache.REMARQUE
Si vous exécutez Enterprise, vous trouverez un deuxième fichier de configuration
etc/enterprise.xml
où le magasin de données pour le FPC est défini.Quelle est la différence entre Flush Cache et Flush Cache Storage:
la source
Une note très importante sur le compilateur Magento. Vous devez désactiver des choses comme APC lors de la compilation car le compilateur ne peut pas compiler ce qui est dans APC et corrompra votre compilation. Pour moi, cela signifierait décharger APC sur le serveur, puis redémarrer Apache (httpd).
la source