在后端加载目录设置时出现致命错误

时间:2011-03-01 12:48:52

标签: php zend-framework magento

在从设置 - >设置菜单中选择目录时,在新的1.5.0.1 Magento安装上,我收到以下错误:

  

致命错误:未定义的类常量'RANGE_CALCULATION_AUTO'   第33行的 / my-install-dir /app/code/core/Mage/Adminhtml/Model/System/Config/Source/Price/Step.php

选中Step.php并且它看起来没有损坏并包含以下内容:

class Mage_Adminhtml_Model_System_Config_Source_Price_Step
{

    public function toOptionArray()
    {
        return array(
            array(
               'value' => Mage_Catalog_Model_Layer_Filter_Price::RANGE_CALCULATION_AUTO,
               'label' => Mage::helper('adminhtml')->__('Automatic')
            ),
            array(
                'value' => Mage_Catalog_Model_Layer_Filter_Price::RANGE_CALCULATION_MANUAL,
                'label' => Mage::helper('adminhtml')->__('Manual')
            ),
        );
    }

}`

任何人都知道此错误或如何解决此问题?

1 个答案:

答案 0 :(得分:6)

PHP抱怨它找不到类RANGE_CALCULATION_AUTO上定义的Mage_Catalog_Model_Layer_Filter_Price上的常量

根据您的上述评论,听起来您已经在

检查了文件
app/code/core/Mage/Catalog/Model/Layer/Filter/Price.php

确保定义了正确的常量。

const RANGE_CALCULATION_AUTO    = 'auto';

基于此,我的猜测就是为这个类加载了不同的 Price.php。如果

,就会发生这种情况
  1. 有人在communitylocal

  2. 中放置了不同的版本
  3. 有人嘲笑Magento正常猴子生意以外的包含路径

  4. 检查

    上的文件
    app/community/core/Mage/Catalog/Model/Layer/Filter/Price.php
    app/local/core/Mage/Catalog/Model/Layer/Filter/Price.php
    

    如果这不起作用,请将一些临时调试代码添加到

    app/code/core/Mage/Adminhtml/Model/System/Config/Source/Price/Step.php
    

    使用反射来确定PHP从

    加载类的文件
    class Mage_Adminhtml_Model_System_Config_Source_Price_Step
    {
    
        public function toOptionArray()
        {
            //NEW LINES HERE
            $r = new ReflectionClass('Mage_Catalog_Model_Layer_Filter_Price');
            var_dump($r->getFileName());
            //echo $r->getFileName(); // if too long for var_dump
            exit("Bailing at line ".__LINE__." in ".__FILE__);
            //END NEW LINES
            return array(
                array(
                   'value' => Mage_Catalog_Model_Layer_Filter_Price::RANGE_CALCULATION_AUTO,
                   'label' => Mage::helper('adminhtml')->__('Automatic')
                ),
                array(
                    'value' => Mage_Catalog_Model_Layer_Filter_Price::RANGE_CALCULATION_MANUAL,
                    'label' => Mage::helper('adminhtml')->__('Manual')
                ),
            );
        }
    
    }`      
    

    这将转储出一个文件路径,该路径指向PHP正在加载类的确切位置,这可以让您到达需要的位置。