Difference between #33 and #29 of NetBeans IDE and Yii projects

NetBeans IDE and Yii projects
IDE, Selenium, PHPUnit, XDebug, NetBeans
This page is created to supply short directions and general tips for managing a
Yii application in NetBeans IDE.

## 1. Code completion

To get context sensitive code completion, follow these steps:

- Include Yii folder (assuming it is properly placed outside project directory)
  - Open "File > Project properties > PHP Include Path" and add
the Yii framework root path
- Ignore yiilite.php to avoid doubled/missing documentation
  - Open "Tools > Options > Miscellaneous > Files"
  - Add to the front of "Files Ignored by the IDE" the file
  - Restart NetBeans
- Code completion in view files ###
  - Add the following PHPDoc statement at the head of the file to use code
completion in view files. (you may add additional passed parameters as well)
/* @var $this PostController */
/* @var $model Post */
$this->getSomeProValue(); // possible with code completion
$model->author; // possible with code completion

#### Usage:

- Typing suggestions: Ctrl-Space
- Show Function parameters: Ctrl-P
- Comment your own code with PHPDoc style. [Here's a good

## 2. Code templates

You can create code templates for commonly used/overridden function in Yii.
For example, if you want to add an beforeSave() function in your model, by
typing a shortcut you can automatically have the function template in
place. There are additional shortcuts for common stuff like Yii::app(),
Yii::t(), Yii::app()->user->checkAccess(), and more!

 - Download this template set to get started:
[http://fbe.am/7bd](http://fbe.am/7bd). It contains:
  - For **models**: ybehaviors, yrelations, yrules, yscopes, ydefaultscope,
yafterconstruct, yafterdelete, yaftersave, yaftervalidate, ybeforedelete,
ybeforefind, ybeforesave, ybeforevalidate 
  - For **controllers**: yaccessrules, yfilters, yactions, ybehaviors,
ybeforeaction, yafteraction, ybeforerender, yafterrender
  - **Generic**: yinit, yrun[http://fbe.am/hly (version
2)](http://fbe.am/hly). View all available commands [in this printable cheat
 - Go to "Tools > Options > Editor > Code Templates"
 - Hit "Import", select the file, and choose "Code

#### Usage:

 - Type the shortcut and hit TAB
 - More info: [NetBeans
 - Example:
// typing: ybeforesave + TAB
// expands to:

 * This method is invoked before saving a record (after validation, if any).
 * @return boolean whether the saving should be executed. Defaults to true.
protected function beforeSave()
	return parent::beforeSave();

## 3. Testing

To run functional tests and unit tests in Yii, recommended is installing PHPUnit
and SeleniumRC.

- Install PHPUnit
  - Follow [the official version 3.6 installation
  - Open "Tools > Options > PHP > Unit Testing" and set the
correct path to the launch script. This is phpunit.bat in Windows and usually
/usr/bin/phpunit in Linux.
- Install SeleniumRC by getting the NetBeans plugin
  - Open "Tools > Plugins > Available Plugins"
  - Install "Selenium Module for PHP"
- Configure project options
  - Open "File > Project properties > Sources" and set
"Test Folder" to \[PROJECT ROOT\]/protected/tests (If the whole
project testing doesn't work, try \[PROJECT ROOT\]/protected/tests/unit)
  - Open "File > Project properties > PHPUnit" and set "Use
Bootstrap" to \[PROJECT ROOT\]/protected/tests/bootstrap.php, and "Use
XML Configuration" to \[PROJECT ROOT\]/protected/tests/phpunit.xml

#### Usage:

- Test whole project: Alt+F6
- Test single file: Shift-F6
- Check code coverage (right click project > Code Coverage)

## 4. Debugging

- Install Xdebug (usually already available in your installation):
  - Follow [the official installation
- Include the Xdebug extension for PHP:
  - In php.ini enable (by removing ; prefix) these settings:
<pre>zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
       xdebug.remote_enable = 1
       xdebug.remote_handler = "dbgp"
       xdebug.remote_host = "localhost"
       xdebug.remote_port = 9000</pre>

#### Usage:

- Debug project: Ctrl-F5
- Use breakpoints, walk through running code, and watch variables and objects in
real-time. :)
- If you want to stop the debugger from pausing on the first line for every
request, simply turn that "feature" off by clicking: Tools >
Options > PHP > Debugging > Stop at First Line (uncheck) 

### 5. Navigation, wizards, additional code completion

[Install a special Yii
## Got problems or questions?

Do NOT post a comment on this wiki page, but go to the forums: