我真的希望这不是重复,但我在这里:
我使用Zend的自动加载器来加载类。它似乎工作,至少它在实例化我的类(Common_TestTest)时加载正确的文件,该类在Common / TestTest.php中实现。但后来我收到以下错误消息:
“在Common / TestTest.php中找不到类Common_TestTest。”
除了类之外,TestTest.php中没有任何内容:
<?php
class Common_TestTest extends PHPUnit_Framework_TestCase
{
public function testTesting() {
$this->assertTrue(true);
$this->assertFalse(true);
}
}
我尝试在文件末尾转储get_declared_classes
,一切看起来都很好,Common_TestTest
是声明的类之一 - 但是在离开文件时仍会抛出异常。
最有趣的一点是:当我将类的名称从Common_TestTest
更改为TestTest
时,会发生相同的事情 - 只是错误消息将缺少的类的名称指定为{{1} }。所以它肯定会看到这个类并对它的存在作出反应。
答案 0 :(得分:0)
我想到了导致问题的原因有两种可能性:
您在类名和文件名之间存在一些不匹配的情况,例如: Testtest.php
注册命名空间时,使用“Common”而不是“Common_”。 Zend_Loader_Autoloader不区分PHP 5.3样式名称空间和ZF样式名称空间(而不是前缀)。通过附加下划线,您确保将命名空间解释为类前缀而不是真正的命名空间。