Ich habe ein seltsames Problem. Ich mag die automatische Generierung von meinen Proxies in Lehre auszuschalten 2. ich diese Zeile Code gefunden, die tun sollen (und tut) den Trick:Doktrin 2. Auto Generieren von Proxies
$config->setProxyDir(APPPATHSYSTEM."/proxies");
$config->setProxyNamespace('Proxies');
// Auto generate proxies for development
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
Auf meiner Testumgebung der Proxys bei Anwendung befinden/Proxies. d.h .:
application/proxies/BaseUserProxy.php
Wenn ich auf der Live-Umgebung bin mein Code plötzlich sucht die Proxies bei application/Proxies/Proxies, die nicht die tatsächliche Lage.
Ich verstehe, dass es etwas mit dem Namespace zu tun hat, aber ich verstehe nicht, warum es anders verhält, wenn Sie die setAutoGenerateProxy Methode verwenden.
Irgendwelche Ideen?
bearbeiten
habe ich die neuen Proxies generieren die Verwendung:
orm:generate-proxies
Option.
Was mir diesen Ausgang gab:
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"
in der letzten Zeile der Suche werden die Proxies in/var/www/application/Proxies generiert. Die Verzeichnisliste sieht so aus:
BaseElementProxy.php
BasePageProxy.php
...
BaseSiteProxy.php
So gibt es kein zusätzliches Proxies-Verzeichnis. Aber wenn ich meine Webseite neu laden, denkt, dass es da ist, es gibt mir die folgende Fehlermeldung:
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
Warum ist das zusätzliche Proxies Verzeichnis hinzugefügt? Wenn ich die Proxies bei jeder Anfrage erzeuge, wird nicht im Verzeichnis für zusätzliche Proxies gesucht. Irgendjemand?
@Bryan M.: Das ist keine Lösung, sondern ein Workaround. Außerdem funktioniert es nicht. Wenn Sie die Proxies generieren, werden sie, wenn Sie Ihren Vorschlag anwenden, in APPPATHSYSTEM generiert und meine Webapp wird versuchen, sie von APPPATHSYSTEM zu laden. "Proxies". Das Problem ist, dass das System für die Proxies an verschiedenen Orten aussieht, wenn ich benutze:
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
Wenn DEVELOPMENT wahr ist, ist es bei APPPATHSYSTEM aussehen wird. Wenn DEVELOPMENT auf false gesetzt ist, wird APPPATHSYSTEM "Proxies" angezeigt. Nur die DEVELOPMENT-Konstanz zu wechseln bricht meine Anwendung, was theoretisch nicht möglich sein sollte.
Versuchen Sie, das Proxys-Verzeichnis nur auf APPPATHSYSTEM zu setzen. Es sollte den Namespace 'Proxies' von dort abholen. –