Tengo un problema extraño. Quiero apagar el generador automático de mis servidores proxy en Doctrina 2. He encontrado esta línea de código que debe hacer (y lo hace) el truco:Doctrine 2. Auto generación de proxies
$config->setProxyDir(APPPATHSYSTEM."/proxies");
$config->setProxyNamespace('Proxies');
// Auto generate proxies for development
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
En mi entorno de prueba de los proxies se encuentran en application/proxies. es decir .:
application/proxies/BaseUserProxy.php
Cuando estoy en el entorno de mi código de repente busca los proxies de aplicación en /proxy/proxy que no es la ubicación real.
Entiendo que tiene algo que ver con el espacio de nombres, pero no entiendo por qué se comporta de manera diferente cuando se usa el método setAutoGenerateProxy.
¿Alguna idea?
edición
hice generar los nuevos servidores proxy utilizando el:
orm:generate-proxies
opción.
Lo que me dio este resultado:
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"
En cuanto a la última línea, los servidores proxy se generan en/var/www/aplicación/proxies. La lista de directorios tiene este aspecto:
BaseElementProxy.php
BasePageProxy.php
...
BaseSiteProxy.php
Así que no hay ningún directorio adicional de Proxies. Pero cuando me refrescar mi sitio Web ahora se piensa que hay, me da el siguiente error:
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 qué se añade el directorio de servidores proxy adicional? Si genero los proxies en cada solicitud, no se ve en el directorio Proxies adicional. ¿Nadie?
@Bryan M.: Esa no es una solución, sino una solución. Además, no funciona. Al generar los proxies, si se aplica su sugerencia, se generarán en APPPATHSYSTEM y mi aplicación web intentará cargarlos desde APPPATHSYSTEM. "Proxies". El problema es que el sistema busca los proxies en diferentes lugares si uso:
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
Si el desarrollo es cierto, que se verá en APPPATHSYSTEM. Si DEVELOPMENT se establece en false, se verá en APPPATHSYSTEM. "Proxies". Simplemente cambiar la constancia de DESARROLLO rompe mi aplicación, lo que teóricamente no debería ser posible.
Intenta configurar el directorio de Proxies con solo APPPATHSYSTEM. Debería recoger el espacio de nombres 'Proxies' desde allí. –