2011-01-07 46 views

回答

3

當我對我的應用程序進行基準測試時,發現使用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看輸出,希望這有助於

+0

你能提供我一個LINQ或一段代碼,請? – 2011-01-07 21:56:35