Класс PHP не найден в файле автозагрузки реализации - PullRequest
0 голосов
/ 30 января 2012

Я действительно надеюсь, что это не дубликат, но здесь я иду:

Я использую автозагрузчик Zend для загрузки классов.Кажется, это работает, по крайней мере, он загружает правильный файл при создании экземпляра моего класса (Common_TestTest), который реализован в Common / TestTest.php.Но затем я получаю следующее сообщение об ошибке:

"Класс Common_TestTest не найден в Common / TestTest.php."

В 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, происходит то же самое - только то, что в сообщении об ошибке указывается имя отсутствующего класса как "TestTest".Так что он определенно видит класс и реагирует на его присутствие.

1 Ответ

0 голосов
/ 30 января 2012

Мне приходит в голову 2 варианта того, что вызывает проблему:

  1. У вас есть некоторое несоответствие между именем класса и именем файла, например, Testtest.php

  2. При регистрации пространства имен вы используете «Common» вместо «Common_». Zend_Loader_Autoloader не различает пространства имен в стиле PHP 5.3 и пространства имен в стиле ZF (скорее префикс). Добавляя подчеркивание, вы гарантируете, что ваше пространство имен интерпретируется как префикс класса, а не как реальное пространство имен.

...