How many files does your project have?
I have played again with performance of the NetBeans PHP IDE. For this purpose I have created "PHP code generator" that generates php files with classes, which create large class structure. Still it's somehow artificial, but for testing purposes the generated sources are good and valid.
I did some measurements on Core 2 Duo 2 GHZ machine. I generated php files for four projects as you can see from the result table. I have switch off the Task list window and measured the time of the creating project with the initial indexing of the php files in the project. The initial indexing parses all files in the project and store information about the files in a cache. Basically the features like code completion, navigation etc. don't work directly with the files, but with the information from the cache. The time of the initial indexing is in the second column in result table. It can be increased when you allow to NetBeans to use more memory than is the default value. In such case the garbage collector doesn't have to run so often. For example when I have increased the memory for NetBeans to 512MB then the indexing of the project with 15 000 files was about one minute shorter.
| Number of PHP files |
Initial project indexing |
Opening indexed project |
Responsiveness |
| 2 500 | 34 s |
2 s |
OK |
| 5 000 | 75 s |
3 s |
OK |
| 10 000 | 258 s |
4 s |
sluggish |
| 15 000 |
395 s |
5 s |
slow |
The third column contains times that the IDE needs for opening a project. Because the cache is stored on HDD, the IDE check during opening project, whether the files were not changed externally to keep informations in the cache up-to-date. As you can see the times are very small.
The last column contains my feeling, when I tried to add a method into a class and navigate through the sources. Working with project with 5 000 files was OK and the slowdown of responsiveness wasn't significant. When I work with the project with 10 000 files, then the IDE was slow sometimes during opening files and I had to wait a while (1 - 3 seconds) for code completion in the top level context. Working with this project wasn't so comfortable like with the project with 5 000 files. Similar situation was, when I try to work with the project that has 15 000 php files. The hyperlink functionality still works great, but using code completion in the top level context needs some patience.
I was evaluating why the IDE is slower with big projects and I think that there is chance for improvements. If you work with such big project, I recommend to switch off the Task window, which can slow the parsing and opening projects.
I have one question for you. How many php files do you have in your projects? I would like to know, how big are the real projects.
International PHP Conference 2008
Last week I attended the International PHP Conference 2008 in Mainz in Germany. The conference was well prepared and I would like to say thanks to organizers. There was just one thing, which could be better. It was raining for all my stay, but this nobody can influence:).
As I expected, almost nobody from the attendees knew the PHP support in NetBeans or NetBeans itself. PHP support in NetBeans is still new and the first version of the PHP support will be released with NetBeans 6.5, probably next week. Because our tool is still new for PHP developer, no surprise for me. I met probably less people than I have fingers, who knew NetBeans. Sun was one of the Gold sponsors and during opening ceremony the audience was asked whether there is someone who knows the PHP support in NetBeans. I think that there was 6 people who put up hand.
On Wednesday I had one session, where I did demonstration of features that are available in NetBeans for PHP IDE. I demonstrate not only the PHP specific features, but also database support on MySQL database, JavaScript editor and debugger etc. I think that the presentation had success, because some people came and told me that they were surprissed, what NetBeans can offer to PHP developers. During whole conference I did many demos in our booth. It was nice to see that people are trying NetBeans on corridors. Some of them came to visit me more times and asked me how to do this or this. At Wednesday's midnight I was still siting with a few people around a table and we were discussing their problems and also we opened their projects in NetBeans and trying to configure debugger etc.
I met during the conference few well known people in the PHP community. I talked with Johannes Schlüter, who is PHP 5.3 release manager. We talked mainly about when PHP 5.3 will be release and about obstacles, which prevent to release it now, like the namespace delimiter story. I have talked with Sebastian Bergmann about PHP Unit support. Sebastian is the author of PHP Unit. I met Wolfram Kriesing, who is well known in Dojo comunity and we talked about integration Dojo in NetBeans etc. I met many PHP developers and it was very useful for me to talk with them.
At the end I have good feeling from the conference. At the beginning of the conference very few people knew about NetBeans and when I leaved Mainz many people have tried NetBeans and expressed good feeling from the support. The time will show whether NetBeans will be used with PHP developers.
NetBeans IDE 6.5 Release Cadidate 1 Available
Yesterday the first release candidate of NetBeans 6.5 was published . You can download it from netbeans.org site. If you use beta or an older build, I recommend to upgrade it.
Now there is the last chance to correct showstoppers. So if you find out a bug, please write here or enter it into our Issuezilla. If there will not be any showstopper, then the final build will be published soon.
Session - Using NetBeans with MySQL, PHP
I have accepted invitation from David Van Couvering to attend his session and present the PHP features in NetBeans. The session will take place this Thursday, 23rd October and will start at 9:00 Pacific Time (18:00 CET, 17:00 BST). We will use DimDim presentation system so everybody can attend. But the session has limited capacity of attendees. More info about the session you can find here.
If you are interested, attend the session.
NetBeans 10th Birthday
NetBeans celebrates 10th birthday. It is 10 years ago, when NetBeans was started as a student project. It's long time for a product. NetBeans are known in Java world and I hope that NetBeans is going to be known in PHP community as well as a good IDE for PHP developers.
I wish to NetBeans many satisfied users.
First screenshots of alfa version of Prado Support
Today I want to show a few screenshots of Prado support in NetBeans. At the beginning I want to answer question "Why are you creating Prado support when Symfony had much more votes?". I started to work on Prado support a few weeks before we anounced the voting. The main reason why I started to work on this was that I need to create a prototype of a framework support to recognize, what changes we need to do in our infrastructure to write a framework suport, which API's are sufficient, which has to be extended or created, what is missing etc. Basically it's proof of concept. I concentrate on editor area, which I think is the most important. At the time when I started to think about this by chance few people from Prado comunity wrote same requests to the users@php.netbeans.org mailing list. Due luck of time, I'm not able to work on this regularly, it's my "midnight" project - I work on this usually from 11 pm to 2 am once or twice a week.
The first screenshot shows that page files are recognized as a special type files. Has different icon then php files, syntactic and semantic coloring works for php parts, template control, folding, navigator, basically everything should work as you know for php files.

The code completion for template control arguments.
The code completion for Prado components.
The code completion for component attributes.
Next two screenshots shows code completion for php in the page files.
And the last screenshot shows errors annotation from php code.

I need to work more to get the support to be ready to publish first alpha and I hope it will be soon.
Fixing, Fixing and Fixing again
For the last few weeks we have been in a bug fixing phase of the development cycle. We are trying to fix as many issues as possible before the code freeze of NetBeans 6.5 in two weeks. After the code freeze we will fix only show stoppers, but now we can still fix issues with priorities P2 and some P3. It depends on how much time we have.
I hope that the first version of PHP support will be really useful for you. If you find an issue in the latet builds, please enter the issue in our Issuezilla.Thanks very much for your support and help.
Issue #145913 - Historically the Most Heavily Voted NetBeans Issue
It's almost two weeks ago when I published entry Support for Cake PHP, Symfony, Prado, Zend Framework, Smarty or ... ? where I invited PHP developers to vote for their favorite PHP framework. The most voted frameworks will be supported in the next version of NetBeans. The voting will be closed after NetBeans 6.5 is finished and published, so there are still a few weeks for voting.
Current voting is following (at 9 am CEST, 15th September) :
- 349 votes - Symfony: issue #145913
- 23 votes - Zend Framework: issue #146028
- 21 votes - Cake PHP: issue #140918
- 9 votes - Prado Framework: issue #146029
- 9 votes - Smarty: issue #136500
- 6 votes - CodeIgniter: issue #146036
- 1 vote - Kohana: issue #146544
- 1 vote - Qcodo: issue #146546
- 1 votes - Nette: issue #146542
So far there are more than 4 hundred votes mainly due to votes for Symfony. In this moment issue #145913 is the top voted NetBeans Issuzilla entry ever. Also based on comments in this issue I have added YAML support to the NetBeans PHP.
Support for Cake PHP, Symfony, Prado, Zend Framework, Smarty or ... ?
Recently, I have answered many questions as to whether NetBeans would support one framework or another. So, I would like to clarify the situation about framework support.
As you probably know, the first version of PHP support in NetBeans is going to be released as a part of NetBeans 6.5. At this moment, there is no official plan to provide support for any framework. This doesn't mean that it is not possible to develop a PHP application based on a framework in NetBeans 6.5. If there is an obstacle to using NetBeans to develop an application based on your favorite framework, then it should be considered a bug and tracked in our bug tracking system -- Issuezilla. On the other hand, NetBeans is open source and there is always a possibility that someone from the community writes support for NetBeans 6.5 as is currently happening for Prado.
The plan for the next release is not done yet, but we have some basic ideas. We'd like to build support for a couple of frameworks. The actual number is a matter of resources. :) And who can decide, which framework / frameworks will be officially supported in the next version of NetBeans? The answer is simple. It's you, the community. Everyone can vote in Issuezilla for their favorite framework. Here is a list of issues where you can add your vote and comments what you would like to see in the support.
- Cake PHP: issue #140918
- CodeIgniter: issue #146036
- Kohana: issue #146544
- Nette: issue #146542
- Prado Framework: issue #146029
- Qcodo: issue #146546
- Smarty: issue #136500
- Symfony: issue #145913
- Zend Framework: issue #146028
If you'd like to vote, you have to have an Issuezilla account and be logged in. The link for voting is above the Additional comment text area.
If you think I forgot a framework, write a comment and I may add it. :)
Differences between Beta and Latest Builds
NetBeans 6.5 Beta was published almost 3 weeks ago. For me the beta is obsolete and if you try a recent build, you will see that many issues were fixed. In Issuezilla there are more then 1600 fixed issues during the last three weeks. I would like to highlight some improvements in PHP support:
- The performance of code completion was significantly improved.
- The editor has about 40 fixes since the beta. The code completion is more context sensitive and it is able to offer more precise results.
- Navigation functionality was also improved. Fixes in the PHP Navigator, Hyperlink and also implementation of Go To Symbol were added.
- Fixes in the project and debugger.
- Small improvements in FTP support.
Overall there are still things which can be fixed and improved. I would like to thank everyone who tried the PHP support in NetBeans and entered an issue. We have a few more weeks for stabilizing and fixing the PHP support. Thanks for your help.
Prado Currency Converter Tutorial in NetBeans
In my last entry I described how to create a simple web PHP application based on the Prado Framework. It was a simple Hello World example and the whole project was created in NetBeans. In this entry I show how to start a Currency Converter Prado tutorial. It does not make sense to duplicate the whole tutorial from the Prado web, so I show how to start the project, because the procedure for starting the project is the part of the tutorial that is most specific to NetBeans.
[Read More]
Prado Hello World Tutorial in NetBeans

In this thread some users of NetBeans PHP ask for a support for Prado framework. Because I haven't worked with this framework yet, I want to learn something more about Prado framework to find out what NetBeans could offer for developers, who build their web applications on top of this framework. The evaluation of the framework takes more time, this entry shows, how to set up NetBeans to develop applications based on Prado framework.
