當我對我的應用程序進行基準測試時,發現使用Doctrine_Core :: HYDRATE_ARRAY做出了很大的改變。當僅在View中使用時,這通常是有意義的。
如果您需要更復雜的嵌套集合,使用Doctrine_Query可能是更好的選擇。
你想要什麼可能是一個查詢是這樣的:
$query = Doctrine_Query::create();
$query->from('Model_Category cat')
->leftJoin('cat.Node n')
->leftJoin('n.Childre c')
->where('count(c.id) > 0')
->andWhere('cat.id = ?', $id);
$query->execute(array(1), Doctrine_Core::HYDRATE_ARRAY)
Xdebug的分析是非常有益的,如果你使用Ubuntu:
命令和apt-get安裝PHP5-Xdebug的
Then:
須藤gedit中/etc/php5/apache2/conf.d/xdebug.ini
在xdebug.ini我:
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.profiler_enable=on
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%H.%R.%t"
記住創建目錄:
MKDIR/TMP/Xdebug的
須藤chgrp命令WWW的數據/ TMP/Xdebug的
搭配chmod 774的/ tmp/Xdebug的
然後我用KCachegrind看輸出,希望這有助於
你能提供我一個LINQ或一段代碼,請? – 2011-01-07 21:56:35