unchanged
Title
NetBeans IDE and Yii projects
This page is created to supply short directions and general tips for managing a Yii application in NetBeans IDE. ##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 instructions](http://www.phpunit.de/manual/3.6/en/installation.html). - 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) ##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 "^(_yiilite\\.php_|CVS|SCCS|...." - Restart NetBeans - Code completion in viewfiles.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) ~~~ [php] /* @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 example](http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_sample2.pkg.html). ## 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. - 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 - Go to "Tools > Options > Editor > Code Templates" - Hit "Import", select the file, and choose "Code Templates" #### Usage: - Type the shortcut and hit TAB - More info: [NetBeans Docs](http://netbeans.org/kb/docs/php/code-templates.html#using-templates) - Example: ~~~ [php] // 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 instructions](http://www.phpunit.de/manual/3.6/en/installation.html). - 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 instructions](http://xdebug.org/docs/install). - 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) ## Got problems or questions? Do NOT post a comment on this wiki page, but go to the forums: <http://www.yiiframework.com/forum/index.php?/topic/11735-netbeans-ide-and-test-driven-development/>Links ----- - [Chinese version](http://www.itkuaixun.com/bbs/thread-216-1-1.html "Chinese version")