У меня небольшая проблема с загрузчиком классов, добавленным в проект Doctrine 2. У меня такая простая структура каталогов:
- config (файл начальной загрузки)
- html (корневой каталог с шаблонами / изображениями / js и т. д.)
- php
- Сущности (доктрина 2 сущности)
- Отзывы (некоторые транспортные объекты)
- Сервисы (обработка api и бизнес-логики - например, сессионные компоненты в java)
Каждый из подкаталогов php принадлежит своему собственному пространству имен (так же, как имя каталога).
Я хочу использовать вышеупомянутый загрузчик классов для загрузки этих трех разных пакетов, поэтому мой загрузочный файл выглядит следующим образом:
$classLoader = new \Doctrine\Common\ClassLoader('Doctrine', $lib );
$classLoader->register();
$responsesCL = new \Doctrine\Common\ClassLoader('Responses', __DIR__.'/../php');
$responsesCL->register();
$entitiesCL = new \Doctrine\Common\ClassLoader('Entities', __DIR__.'/../php');
$entitiesCL->register();
$servicesCL = new \Doctrine\Common\ClassLoader('Services', __DIR__.'/../php');
$servicesCL->register();
Жирный шрифт DIR на самом деле __ DIR __ константа php.
Теперь я имею в виду в своем пакете услуг сущности, и именно здесь начинается проблема, по какой-то причине я получаю ошибки из-за проблемы, связанной с не найденным файлом, например:
Не удалось открыть '/var/www/projects/PlatformManagement/config/../php/Services/Entities/User.php' (include_path = '.: / Usr / share / pear: / usr / share / php') в /usr/share/pear/Doctrine/Common/ClassLoader.php в строке 148
Каким-то образом в пути есть лишние «Сервисы», и, очевидно, это недопустимый путь. Я немного озадачен, почему там этот дополнительный каталог? Я проверил все пространства имен, вызовы, и они в порядке.
Мне нужна еще пара глаз, чтобы взглянуть, я предполагаю, что упускаю что-то очевидное, но не могу это заметить: |
О, это последняя версия Doctrine 2 Beta (4) и php 5.3.3 на Fedora, если это может вам помочь.
Спасибо, Грег