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 "^(yiilite\.php|CVS|SCCS|...."
- 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
@var
$this->getSomeProValue();
$model->author;
Usage:
- Typing suggestions: Ctrl-Space
- Show Function parameters: Ctrl-P
- Comment your own code with PHPDoc style. Here's a good example.
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/hly (version 2). View all available commands in this printable cheat sheet.
- Go to "Tools > Options > Editor > Code Templates"
- Hit "Import", select the file, and choose "Code Templates"
- You might get an error message "invalid zip file" if you are importing to a older/newer version of NetBeans. Open up the zip file, edit build.info, and set the correct path to Userdir.
Usage:
@return
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
- 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):
- Include the Xdebug extension for PHP:
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 plugin.
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/
Total 20 comments
I currently have a plugin for Yii installed in my installation of phpstorm, but it does not include a lot of what is available with this plugin. Can I install this with phpStorm and will it work the Yii plugin for phpStorm, I already have installed?
.
@Juan Pablo Sala - Exactly, you can have separate open projects, and netbeans will also search other projects. Also there is even possibility to not make framework project at all!
Here is how:
Click on application project, choose
propertiesthen fromcategorieschoosePHP include pathand thenAdd folderand navigate to framework folder. This wayOpen filedialog will completely ignore framework files, but code completition still works.hi, pmaselkowski at 2012/11/22 01:21pm sayd
do you mean that if you have the framework in a project you don't have to include it in your real projects? sorry for me english, home you understood, thanks
NetBeans 7.3 now has an "official" Yii Plugin that includes some nice features: - Badge icon - Go To Action - Go To View - Code Completion on the view file - Init Action - PHPUnit Test Init Action - New Yii Project Wizard
Plugin Portal: http://plugins.netbeans.org/plugin/47246/php-yii-framework-netbeans-phpcc Github/docs: https://github.com/nbphpcouncil/nb-yii-plugin/tree/nb73dev
I created a new version of the code template set. It contains new commonly used function calls, and example code in some of the already existing methods.
Added the new download and a link to hoplayann's cheat sheet to the wiki page. :)
Hi,
for those interested, I have created a cheat sheet in order to learn a bit faster those code templates :-)
Yii + Php code templates for NetBeans: http://www.cheatography.com/hoplayann/cheat-sheets/php-yii-code-templates-for-netbeans/
Only Yii code templates for NetBeans: http://www.cheatography.com/hoplayann/cheat-sheets/yii-code-templates-for-netbeans/
Good luck !
I found usefull to have separate projects for application and yii, so in example when you open
Go to filedialog there is checkboxPrefer current project, so your project files are first on the list. My folder layout is:@marcovtwout - Thanks so much.
I think pretty much everyone is using the standard Gii-tool since two years now ;)
http://www.yiiframework.com/doc/guide/1.1/en/quickstart.first-app#implementing-crud-operations
Hi guys,
I have just managed to get NetBeans configured for an existing Yii demo project I created.
But now I intend to use this for commercial projects.
Do I still need to do bulk of the work from command-line? Or is there a plugin that can help?
Best Regards,
Ashish.
I forgot beforeValidate(), added now to the file.
I discovered the advantages of using code templates and added some information to the wiki page about it. See if you like it. :)
I had to play with the order of the PHPDoc definitions to get code completion work. Tweak the lines of your definitions if you encounter any problems.
This won't work out of the box, it requires some additional typing. But at least you can make it work. Consider one of your model has some behaviors attached:
With this, the IDE has no idea about instances of "MyModel" providing a method "foo". You won't get suggestions for:
But what you can do is adding some PHPDoc to your model class:
Now, the the code completion should show the method.
thank you for the setup explanation
How to run selenium with google chrome? IE is too slow.
If you are using 64bit windows with WAMP or XAMPP install then you most likely don't have pear so go to this site and follow the instructions for installing PHPUnit manually.
http://www.unclecode.com/2010/05/install-phpunit-on-wamp-xamp-manually-without-pear/
This is an old article so I am not sure about it's download location, I used the following site to download the current version.
https://github.com/sebastianbergmann/phpunit/
i did all steps but when i test whole project i get this error
PHP Fatal error: Cannot redeclare class CActiveRecord in /srv/http/weblog/framework/db/ar/CActiveRecord.php on line 1832
Hi! i'm newbe... What does meands the message: "Test were not generated for the following files: Review the log i Output window"?
I have totally new XAMPP (:) ) installed in Win7. New NetBeans 6.9.1, PHPUnit installed with XAMPP, then must be new.. 3.6 I doing step by step with this tuts "NetBeans IDE and Yii projects", and... i don't see any files with log, why its not generated? Whitch one window is "Output window" when i see "the log"? I'm very flustrated... ;) Sorry for my lang, and bad mood... :) Help me please.
Thanks and regards
Ykee
see here
Leave a comment
Please login to leave your comment.