!class_exists不在magento工作?

时间:2013-01-03 02:27:46

标签: php magento

当我运行test.php时,为什么总是出错!class_exists line?

这是test.php:

<?php    //test.php
    require_once './app/Mage.php';
    Mage::app()->setCurrentStore(0);
    Mage::setIsDeveloperMode(true);


    require_once("test-class.php");
?>

这是test-class.php:

<?php    //test-class.php
        if (!class_exists("AClass")) {
            class AClass {
                public function AnAction() {
                   return 123;
                }
            }
         }
?>

1 个答案:

答案 0 :(得分:3)

由于Magento bootstrap app / Mage.php registers an autoloader,您对class_exists()的调用会触发尝试加载此类的类定义。传递false

可以更改此行为
<?php    //test-class.php
    if (!class_exists("AClass",false)) {
        class AClass {
            public function AnAction() {
               return 123;
            }
        }
     }
?>

此外,引导程序设置包括自动加载器使用的路径参数:

$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
$paths[] = BP . DS . 'lib';

将您的类定义放在上述任何目录中都可以在需要定义时定义它。