У меня странная проблема. Я хочу отключить автоматическую генерацию моих прокси в Doctrine 2. Я нашел эту строку кода, которая должна (и выполняет) хитрость:
$config->setProxyDir(APPPATHSYSTEM."/proxies");
$config->setProxyNamespace('Proxies');
// Auto generate proxies for development
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
В моей тестовой среде прокси расположены по адресу application / proxies . i.e.:
application/proxies/BaseUserProxy.php
Когда я нахожусь в живом окружении, мой код внезапно ищет прокси в application / proxies / Proxies , который не является фактическим местоположением.
Я понимаю, что это как-то связано с пространством имен, но я не понимаю, почему он ведет себя по-разному при использовании метода setAutoGenerateProxy .
Есть идеи?
1020 * редактировать *
Я сгенерировал новые прокси, используя:
orm:generate-proxies
опция.
Который дал мне этот вывод:
php doctrine.php orm:generate-proxies
Processing entity "Base\Element"
Processing entity "Base\Page"
...
Processing entity "Base\Site"
Proxy classes generated to "/var/www/application/proxies"
Глядя на последнюю строку, прокси создаются в / var / www / application / proxies. Список каталогов выглядит так:
BaseElementProxy.php
BasePageProxy.php
...
BaseSiteProxy.php
Таким образом, нет дополнительного каталога Proxies. Но когда я обновляю свою веб-страницу, она думает, что есть, она выдает мне следующую ошибку:
Warning: require(/var/www/application//proxies/Proxies/BaseUserProxy.php)
[function.require]: failed to open stream:
No such file or directory in /var/www/library/Doctrine/Common/ClassLoader.php on line 148
Почему добавлен дополнительный каталог Proxies? Если я создаю прокси-серверы для каждого запроса, он не выглядит в дополнительном каталоге Proxies. Кто-нибудь?
@ Брайан М. : Это не решение, а обходной путь. Кроме того, это не работает. При создании прокси-серверов они, при применении вашего предложения, будут генерироваться в APPPATHSYSTEM, и мое веб-приложение попытается загрузить их из APPPATHSYSTEM. «Прокси-серверы». Проблема в том, что система ищет прокси в разных местах, если я использую:
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
Если DEVELOPMENT имеет значение true, он будет смотреть на APPPATHSYSTEM. Если для DEVELOPMENT задано значение false, он будет смотреть на APPPATHSYSTEM. «Прокси». Простое переключение константы РАЗВИТИЯ разрушает мое приложение, что теоретически не должно быть возможным.