当我运行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;
}
}
}
?>
答案 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';
将您的类定义放在上述任何目录中都可以在需要定义时定义它。