Доктрина 2. Автоматическое создание прокси

У меня есть странная проблема. Я хочу отключить автоматическую генерацию моих прокси в Doctrine 2. Я нашел эту строку кода, которая должна (и делает) трюк:

$config->setProxyDir(APPPATHSYSTEM."/proxies");
$config->setProxyNamespace('Proxies');

// Auto generate proxies for development
$config->setAutoGenerateProxyClasses(DEVELOPMENT);

В моей тестовой среде прокси расположены в приложении / proxies , то есть:

application/proxies/BaseUserProxy.php

Когда я нахожусь в реальной среде, мой код внезапно ищет прокси в application / proxies / Proxies , которое не является фактическим местоположением.

Я делаю это понимаю, что это как-то связано с пространством имен, но я не понимаю, почему оно ведет себя по-другому при использовании метода setAutoGenerateProxy .

Есть идеи?

редактировать

Я сгенерировал новые прокси, используя параметр:

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

Таким образом, дополнительного каталога прокси нет. Но когда я обновляю свою веб-страницу, мне кажется, что она есть, и возникает следующая ошибка:

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? Если я создаю прокси для каждого запроса, он не будет искать в дополнительном каталоге прокси. Кто-нибудь?

@Bryan M. : Это не решение, а обходной путь. Кроме того, это не работает. При создании прокси они, если вы примените ваше предложение, будут сгенерированы в APPPATHSYSTEM, и мое веб-приложение попытается загрузить их из APPPATHSYSTEM. "Прокси". Проблема в том, что система ищет прокси в разных местах, если я использую:

$config->setAutoGenerateProxyClasses(DEVELOPMENT);

Если РАЗРАБОТКА истинна, она будет смотреть на APPPATHSYSTEM. Если DEVELOPMENT имеет значение false, он будет смотреть на APPPATHSYSTEM. «Прокси». Простое переключение константы DEVELOPMENT нарушает работу моего приложения, что теоретически не должно быть возможным.

10
задан vbence 12 October 2014 в 09:45
поделиться