Zend PHP IDE 5 Beta Review

by Mike Willbanks on September 16th, 2005

I have been testing Zend PHP IDE 5 beta for the last week. So far I have found some things nice about it and others that make me just sheer away. So far this has been my experience:

Lets start off with the features that are good:
1. Debugging environment lets you switch between PHP4 and PHP5.
This makes it very adequate when you are testing for functionality between the two different versions. If anything letting you know if they will run under PHP4 and PHP5. This is a very nice feature to have!
2. Code Completion runs under PHP4 and PHP5
In the same setting as the debugging environment you can switch between PHP4 and PHP5 to know which functions that you are able to run…
Althoughs omething I have not seen in any PHP IDE is selecting specific versions ex: 4.2.3 and getting a function list. This in itself would make it even better because then you could actually develop specifically for a version of PHP that you are working with in an enterprise environment. Then possibly giving you a warning depending on if you are using a function that will be disappearing or has been renamed to something else in future versions so you can code accordingly thus making your code able to migrate.

3. Project Management
I like the project manager. Since I constantly work with many projects this helps speed up delayed time in finding all of the files and getting all of the type hints that I need. Also along with this they have integrated CVS and SVN.

4. Including databases
They allow you to include databases from an SQL tab by the project management tab. This will allow you to put in the databases that you are using and have more functionality within the development of your program. I can not comment much on this as I haven’t truely used it as of yet but it is a good thing that they allow this.

5. Code Collapsing
Every great IDE has code collapsing, this allows me to take a chunk of code and make it small so it does not need to take up my screen space. It is a very handy feature to have although it doesn’t always work correctly.

6. Analyze Code
This is a handy feature that allows you to see warnings and other items that might be printed out before you even run your code. This has helped me notice some things that I might not have noticed before… However there are flaws definitely when you have a variable created within an oracle function.

Now onto the things that I do not like:

1. Printing Usability
When you go to print a document it puts the name on the top and the page number on the bottom… which is pretty standard. What I highly dislike about it is that when printing it puts a box around your code that is printed to the paper. This makes it so that there is less room for code and more layout than anything. This could be improved by removing the box.

2. Responsiveness
The editor is still very slow in comparison with many other IDE’s. This single handedly makes me want to use a different application.

3. Code Completion
When using loops and such other items when you create something and the drop down list is still showing you can not use the “End” key to move to the end of it. First you have to close the code completion dialog.
Also in this section when creating a conditional statement it doesn’t add the braces until you hit the enter key. Most of the time when I do not see them I add them. This causes a usability problem when I am dealing with that.

4. Preferences Dialog
The perferences dialog does not allow you to size it dependingly. Also on that list, it just is ugly and could be better layed out. Take a look at the firefox ui for a look at better usability.

5. Code Analyzer
This in itself has problems and redflags the while (list(, $vkey) = each($keys)) loop. It tells me that the Array is being used as a booleen type. However the list function is actually the one with the end evaluation.

More issues is it was telling me the value of an array I used was never used… How so?
$tmp = array();
$tmp = explode('-', $psDate);
//0 - year, 1 - month, 2 - day
$clean['date'] = date('d-M-Y', mktime(0, 0, 0, $tmp[1], $tmp[2], $tmp[0]));
unset($tmp, $psDate); //clear the temporary values

That function just checks some input before hand and then explodes it into a mktime… Don’t ask :-/

Then another annoyance:
while(ocifetchinto($stmt, $row, OCI_ASSOC)){
//do stuff with $row

Tells me $row was used before it was defined when clearly it is being defined in the while loop with that function!

Talk about a major issue, but yet it is an innovative feature :)

6. The internal browser.
The internal browser uses IE on windows by default and takes an extreme amount of time to load. This is not a nice feature if it doesn’t work quickly. I could more simply buffer the output of the debugger directly into the browser of my choice.

Overall I think there are still much better alternatives out there. My main choice of product has always been PHPEdit. It does have problems of its own but overall the developers listen to their users.

From PHP

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS