I think that there are some XDebug issues caused by this issue, I can see that (presumably for efficiency reasons) there are lots of ‘non braced if statements’ i.e.
LN 132: framework/db/CDbCommand.php
public function setText($value)
{
if($this->_connection->tablePrefix!==null && $value!='')
$this->_text=preg_replace('/{{(.*?)}}/',$this->_connection->tablePrefix.'\1',$value);
else
$this->_text=$value;
$this->cancel();
return $this;
}
XDebug seems to have problems stepping into these, Derick Rethans (Author of Xdebug) suggests that ‘un braced’ code cannot be stepped into as the bytecode will lack the required EXT_STMT opcode at the appropriate location.
This is more of a Netbeans-XDebug problem, because I have encountered this problem first with a non-Yii (actually, non-frameworked) codes in my Ubuntu 10. Googling around, I fixed the problem by downloading the suitable xdebug driver based on my phpinfo (this is a very cool tool), and followed the steps that was given there. I restarted apache and tested the debugging with breakpoints, and it worked.
If I’m not mistaken, it all boils down to the xdebug driver and your php.ini configuration. I did the same thing with my XAMPP-Yii-Netbeans setup in my Windows XP, and worked like a charm.
I have XDebug installed with Netbeans on a Wamp platform and can step into code without problems. However I can’t see any attributes within my object models. Is this expected behaviour when model attributes are private - or have I perhaps not got XDebug set up correctly?
I can see my Objects under the Variables tab and they look expandable, but nothing happens when I click the ‘+’ to try to expand them.
Has anyone managed to see object contents successfully?