Question

Je suis en train de permettre la compilation sur Magento via le panneau de contrôle et en compilation est activée la page principale ne parvient pas à afficher correctement et je trouve que index.php a soulevé à plusieurs reprises l'erreur suivante dans les journaux:

E_­COMPILE_­ERROR: require_­once­(­)­: Failed opening required '­Config­File­Manager­Model.­php' ­(include_­path='/­var/­www/­vhosts/­<domain_name_redacted>/­httpdocs/­includes/­src­:.­:'­)­

Le retour du site à la normale immédiatement après la désactivation de la compilation, mais je voudrais vraiment avoir les avantages de performance. Quelqu'un sait comment résoudre ce problème?

Était-ce utile?

La solution

On dirait un de vos extensions, ou un code personnalisé dans votre système, est incompatible avec le mode de compilation de Magento. La solution exacte varie en fonction de votre système PHP. Voici une explication du problème et des conseils de dépannage qui devraient vous aider.

A fichier dans votre système contient une ligne qui ressemble à quelque chose comme ceci

//the string 'ConfigFileManager-Model.php' may be 
//a constant or variable as well

require_once 'ConfigFileManager-Model.php';

Le fichier ConfigFileManager-Model.php ne fait pas partie de Magento, ou tout colis distribué publiquement en ce que je peux dire .

On dirait que quand vous utilisez en mode « non compilé », Magento peut trouver ce fichier sans problème. Cela signifie qu'il est quelque part dans la Magento normale comprennent des chemins

/path/to/magento/app/code/core/ConfigFileManager-Model.php    
/path/to/magento/app/code/community/ConfigFileManager-Model.php
/path/to/magento/app/code/local/ConfigFileManager-Model.php
/path/to/magento/path/to/calling/files/own/folder/ConfigFileManager-Model.php

#possibly more, depending on your system's default include path

Cependant, quand fonctionne Magento en mode compilé, les chemins core, local et piscine code community ne sont pas ajoutés comme inclure les chemins. Seul le dossier

/path/to/magento/includes/src

est ajouté en tant que chemin d'inclusion. De plus, ce mode de compilation fait est une copie de marque de tous les fichiers de classe et les gouttes dans le dossier includes/src. Cela signifie pas propre dossier d'origine du fichier est plus dans le chemin d'inclusion. De ce fait, lorsque Magento exécute le code de require en mode de compilation, il ne peut pas trouver le fichier ConfigFileManager-Model.php et échoue.

La meilleure chose à faire serait recoder le module et / ou du code personnalisé tel que la fonctionnalité de ConfigFileManager-Model.php est incorporée dans une norme aide Magento de classe modèle.

Le moins bon, mais plus rapide chose serait d'identifier tous les lieux ConfigFileManager-Model.php est required et changer le chemin il est donc absolu au lieu de parent.

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