ОБНОВЛЕНИЕ :
Я отказался от CodeIgniter и желания построить веб-интерфейс вокруг приложения для моей базы данных из PHP, поскольку не было никакого способа избавиться отэта ошибка ...
Исключение
Я получаю это исключение:
Fatal error: require_once(): Cannot redeclare class doctrine\orm\abstractquery in Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php on line 190
Call Stack:
0.0007 330016 1. {main}() Q:\Digest\index.php:0
0.0058 330800 2. require_once('Q:\Digest\lib\CodeIgniter\core\CodeIgniter.php') Q:\Digest\index.php:163
0.2207 935856 3. call_user_func_array() Q:\Digest\lib\CodeIgniter\core\CodeIgniter.php:297
0.2207 935904 4. Crud->index() Q:\Digest\lib\CodeIgniter\core\CodeIgniter.php:0
0.2574 1065064 5. Crud->__getEntities() Q:\Digest\Application\controllers\crud.php:19
0.2649 1121824 6. Doctrine\ORM\AbstractQuery->getResult() Q:\Digest\Application\controllers\crud.php:49
0.2649 1121976 7. Doctrine\ORM\AbstractQuery->execute() Q:\Digest\lib\Doctrine\ORM\AbstractQuery.php:366
0.2651 1121976 8. Doctrine\ORM\Query->_doExecute() Q:\Digest\lib\Doctrine\ORM\AbstractQuery.php:528
0.2651 1121976 9. Doctrine\ORM\Query->_parse() Q:\Digest\lib\Doctrine\ORM\Query.php:223
0.2848 1185896 10. Doctrine\ORM\Query\Parser->parse() Q:\Digest\lib\Doctrine\ORM\Query.php:203
0.3089 1238704 11. Doctrine\ORM\Query\SqlWalker->getExecutor() Q:\Digest\lib\Doctrine\ORM\Query\Parser.php:311
0.3090 1239104 12. Symfony\Component\HttpFoundation\UniversalClassLoader->loadClass() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:0
0.3107 1241104 13. require_once('Q:\Digest\lib\Doctrine\ORM\Query\Exec\SingleSelectExecutor.php') Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:190
0.3108 1241440 14. Symfony\Component\HttpFoundation\UniversalClassLoader->loadClass() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:0
Я использую Doctrine 2.0 с Symfony UniversalClassLoader
, как видно выше, для реализации скрипта анализа данных.Чтобы просмотреть результаты, я настроил проект CodeIgniter.
Вот что меня озадачило этим исключением: я устранил почти все разумные причины и ничего не нашел.Скажите мне, если я сделал что-то не так в отборочных турах здесь.
Если у кого-то есть какие-либо подсказки о том, что может быть не так, пожалуйста, помогите.Если вы считаете, что есть какая-то информация, которую я оставил, также, пожалуйста, сообщите мне.
Спасибо.
Устранение дублирующихся объявлений
Это говорит мне, что яне может переопределить класс.Я очистил все мои файлы, и этот класс определен только в его конкретном файле"Doctrine / ORM / AbstractQuery.php".
Обратите внимание, что изначально ошибка сообщалась при вызовеrequire
в строке 190 файла Symfony UniversalClassLoader.php, и я изменил его на require_once
, чтобы убедиться, что файл не загружается дважды.
Устранение чувствительной к регистру файловой системы
Из-за заметки, которую я нашел здесь , я думаю, я должен поделиться, что я использую PHP 5.3.5 на Windows 7. Это должно означать ошибку / функциюописанное ниже не оказывает никакого влияния.
Это поведение изменилось в PHP 5, поэтому, например, в Windows сначала нормализуется путь, так что C: \ PROGRA ~ 1 \ A.php реализуется так же, какC: \ Program Files \ a.php и файл включен только один раз.
Устранение require
дублирование
Теперь я зашел так далеко, что заменитькаждый вызов в каждой библиотеке (и мой собственный код) для функции require
один к require_once
, и ошибка сохраняется без изменений.Это означает, что теперь я могу с уверенностью сказать, что ни один звонок на require
не несет ответственности.Мой вопрос остается: что это?
Вывод отладчика
Запуск отладчика абсолютно ничего не приносит мне:
...
0.4658 1274904 -> Doctrine\ORM\Query\SqlWalker->getExecutor() Q:\Digest\lib\Doctrine\ORM\Query\Parser.php:311
0.4660 1275304 -> Logger::autoload() Q:\Digest\lib\Log4PHP\Logger.php:0
0.4662 1275304 -> Symfony\Component\HttpFoundation\UniversalClassLoader->loadClass() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:0
0.4663 1275384 -> strripos() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:183
0.4665 1275400 -> substr() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:185
0.4666 1275488 -> strpos() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:187
0.4667 1275520 -> substr() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:188
0.4668 1275672 -> str_replace() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:189
0.4669 1275696 -> str_replace() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:189
0.4671 1275656 -> file_exists() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:190
0.4700 1277304 -> require_once(Q:\Digest\lib\Doctrine\ORM\Query\Exec\SingleSelectExecutor.php) Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:192
0.4702 1277640 -> Logger::autoload() Q:\Digest\lib\Log4PHP\Logger.php:0
0.4703 1277640 -> Symfony\Component\HttpFoundation\UniversalClassLoader->loadClass() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:0
0.4704 1277720 -> strripos() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:183
0.4706 1277736 -> substr() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:185
0.4707 1278280 -> strpos() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:187
0.4708 1278312 -> substr() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:188
0.4709 1278464 -> str_replace() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:189
0.4711 1278488 -> str_replace() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:189
0.4712 1278448 -> file_exists() Q:\Digest\lib\Symfony\Component\HttpFoundation\UniversalClassLoader.php:190
0.5259 zu
TRACE END [2011-03-28 11:28:00]
Некоторые дополнительные проверки говорят мне, что файл этозагрузка при сбое равна lib\Doctrine\ORM\Query\Exec\AbstractSqlExecutor.php
, или AbstractSqlExecutor
класс ... таким образом, что-то совершенно не связано.