Question

Alors, après un certain débogage douloureux (et permettant cri dans xdebug), j'ai pu découvrir que certaines pages reviennent une erreur fatale (tel que le catalogue / produit / Galerie / id / 155 / image / 202 /) où Magento semble être, y compris la même classe deux fois. Je ne l'ai pas encore compris ce qui se passe comme je ne suis pas encore trop familier avec les entrailles de compilation

mais j'ai découvert que la suppression de la catégorie particulière dans includes / src / __ catalog.php causes justes différentes classes d'avoir l'erreur et la suppression que des corrections de fichiers entiers la question (mais je perds tout ce code compilé).

J'ai essayé de recompiler le code sans succès à l'amélioration de cette question.

Je préfère laisser la compilation de code activé, car du point de vue IO, il fait d'augmenter les performances tout à fait un peu.

Je suppose que je ne suis pas sûr que la raison pour laquelle la classe est inclus deux fois? Je suppose qu'il ya une certaine logique foiré dans le chargeur automatique qui isnt détecter que la classe est déjà chargé quand il essaie de le charger à nouveau? Bien que il ne semble pas avoir des problèmes sur d'autres pages.

greping pour les classes existantes montre:

$ grep -irn mage_catalog_block_breadcrumbs .
./app/code/core/Mage/Catalog/Block/Breadcrumbs.php:34:class Mage_Catalog_Block_Breadcrumbs extends Mage_Core_Block_Template
./app/code/core/Mage/Catalog/Block/Breadcrumbs.php:51:     * @return Mage_Catalog_Block_Breadcrumbs
./app/code/core/Mage/Compiler/etc/compilation.xml:231:            <Mage_Catalog_Block_Breadcrumbs/>
./includes/src/Mage_Catalog_Block_Breadcrumbs.php:34:class Mage_Catalog_Block_Breadcrumbs extends Mage_Core_Block_Template
./includes/src/Mage_Catalog_Block_Breadcrumbs.php:51:     * @return Mage_Catalog_Block_Breadcrumbs
./includes/src/__catalog.php:35:class Mage_Catalog_Block_Breadcrumbs extends Mage_Core_Block_Template
./includes/src/__catalog.php:52:     * @return Mage_Catalog_Block_Breadcrumbs

Erreur:

PHP Fatal error:  Cannot redeclare class Mage_Catalog_Block_Breadcrumb in /var/www/vhosts/site/gitrepo/pti/magento/includes/src/__catalog.php on line 238
Jul 12 07:03:29  httpd: PHP Stack trace:
Jul 12 07:03:29  httpd: PHP   1. {main}() /var/www/vhosts/site/gitrepo/pti/magento/index.php:0
Jul 12 07:03:29  httpd: PHP   2. Mage::run() /var/www/vhosts/site/gitrepo/pti/magento/index.php:90
Jul 12 07:03:29  httpd: PHP   3. Mage_Core_Model_App->run() /var/www/vhosts/site/gitrepo/pti/magento/app/Mage.php:683
Jul 12 07:03:29  httpd: PHP   4. Mage_Core_Controller_Varien_Front->dispatch() /var/www/vhosts/site/gitrepo/pti/magento/includes/src/__default.php:20061
Jul 12 07:03:29  httpd: PHP   5. Mage_Core_Controller_Varien_Router_Standard->match() /var/www/vhosts/site/gitrepo/pti/magento/includes/src/__default.php:17484
Jul 12 07:03:29  httpd: PHP   6. Mage_Core_Controller_Varien_Action->dispatch() /var/www/vhosts/site/gitrepo/pti/magento/includes/src/__default.php:17927
Jul 12 07:03:29  httpd: PHP   7. Mage_Core_Controller_Front_Action->preDispatch() /var/www/vhosts/site/gitrepo/pti/magento/includes/src/__default.php:13571
Jul 12 07:03:29  httpd: PHP   8. Mage_Core_Controller_Varien_Action->preDispatch() /var/www/vhosts/site/gitrepo/pti/magento/includes/src/__default.php:14324
Jul 12 07:03:29  httpd: PHP   9. Varien_Autoload::registerScope() /var/www/vhosts/site/gitrepo/pti/magento/includes/src/__default.php:13689
Était-ce utile?

La solution

Magento ne supprime pas les caches lors de l'activation de la compilation. Si vous ne les caches Magento videz ne me souviendrai toujours où les fichiers doivent être, mais que les conflits avec la version compilée.

clair pour tous les caches (magento, apc, memcached, ce que vous avez) devrait résoudre ce problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top