Doutrina 2. Proxies de geração automática
Eu tenho um problema estranho. Quero desativar a geração automática de meus proxies no Doctrine 2. Encontrei esta linha de código que deve (e faz) o truque:
$config->setProxyDir(APPPATHSYSTEM."/proxies");
$config->setProxyNamespace('Proxies');
// Auto generate proxies for development
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
No meu ambiente de teste, os proxies estão localizados emaplicação / proxies. ou seja:
application/proxies/BaseUserProxy.php
Quando estou no ambiente ativo, meu código repentinamente pesquisa os proxies emapplication / proxies / Proxies que não é o local real.
Entendo que ele tenha algo a ver com o espaço para nome, mas não entendo por que ele se comporta de maneira diferente ao usar osetAutoGenerateProxy método.
Alguma ideia?
editar
Eu gerei os novos proxies usando o:
orm:generate-proxies
opção.
O que me deu essa saída:
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"
Observando a última linha, os proxies são gerados em / var / www / application / proxies. A lista de diretórios é assim:
BaseElementProxy.php
BasePageProxy.php
...
BaseSiteProxy.php
Portanto, não há diretório de Proxies extra. Mas quando eu atualizo minha página da Web que ela acha que existe, ele me dá o seguinte erro:
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
Por que o diretório Proxies extra foi adicionado? Se eu gerar os proxies em cada solicitação, ele não procurará no diretório Proxies extra. Qualquer pessoa?
@Bryan M.: Isso não é uma solução, mas uma solução alternativa. Além disso, não funciona. Ao gerar os proxies, eles, se aplicarem sua sugestão, serão gerados no APPPATHSYSTEM e meu webapp tentará carregá-los no APPPATHSYSTEM. "Proxies". O problema é que o sistema procura os proxies em locais diferentes se eu usar:
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
Se DESENVOLVIMENTO for verdadeiro, ele analisará APPPATHSYSTEM. Se DEVELOPMENT estiver definido como false, ele olhará para APPPATHSYSTEM. "Proxies". Apenas alternar a constância DEVELOPMENT interrompe minha aplicação, o que teoricamente não deveria ser possível.