我有一個奇怪的問題。我想關掉我代理的自動生成的學說2.我發現這行代碼是應該做的(和做)的伎倆:學說2.自動生成代理
$config->setProxyDir(APPPATHSYSTEM."/proxies");
$config->setProxyNamespace('Proxies');
// Auto generate proxies for development
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
在我的測試環境中的代理服務器位於應用/代理。即:
application/proxies/BaseUserProxy.php
當我在現場環境中應用程序/代理/代理這是不實際的位置,我的代碼突然搜索的代理。
我明白它與命名空間有關,但我不明白爲什麼它在使用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 /網絡/應用/代理生成的代理。目錄列表如下所示:
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
額外的代理目錄?如果我在每個請求上生成代理,它不會在額外的代理目錄中查找。任何人?
@Bryan M.:這不是一個解決方案,而是一種解決方法。此外,它不起作用。當生成代理時,如果應用您的建議,它們將在APPPATHSYSTEM中生成,我的webapp將嘗試從APPPATHSYSTEM中加載它們。「代理」。問題是,該系統尋找在不同地點的代理,如果我使用:
$config->setAutoGenerateProxyClasses(DEVELOPMENT);
如果發展是真實的,它會看APPPATHSYSTEM。如果DEVELOPMENT設置爲false,它將查看APPPATHSYSTEM。「代理」。只是切換髮展常規會破壞我的應用程序,理論上應該是不可能的。
嘗試將Proxies目錄設置爲APPPATHSYSTEM。它應該從那裏拿起'代理'命名空間。 – 2010-11-07 22:53:33