What IDEs I tested:
I am working with PHP more than 5 years and have used ZDE 4.x and 5.x ever since.. because there is no good IDE for PHP developers.. one week I was testing all major IDEs.. Aptana 2, Zend Studio 7.2, Dreamweaver CS5, Eclipse PDT 2.2, NuSphere PhpED 5.95, Komodo 5.2.4, NetBeans 6.8 and 6.9
Conclusion: none of them have full features for PHP development. I'll not write them down because I found only two which are capable to do good job and they are Nusphere PhpED and Zend 5.x. I'd like to switch to PhpED, however, it needs some additional functionality on top of all good things that it has.
Five days worked with PhpEd and made a list:
PhpED Should add this functionality like an option
checkbox. On/off or first-behavior/second-behavior:
I. New file opening:
a) should place newly opened tab in the far right position, not right after currently open tab.
b) should place newly opened tab right after currently selected tab
II. Tab/file closing:
a) should activate (select) tab on the
right from closed tab
b) should activate (select) tab on the
left from closed tab
III. File tabs
a) Show source/preview sub-tabs
b) Hide source/preview sub-tabs
IV. Code selection: (I don't know how to describe, it will be an example)
a)
Assume, you have 100 lines with code.
Place caret(cursor) on the 50th line.
Press and hold shift
Click on the 60th line (selection appears from 50-60 lines)
Click on the 40th line (selection appends itself and now selected are lines from
40 to 60)
Release the shift button.
b)
Assume, you have 100 lines with code.
Position caret on the 50th line.
Press and hold shift
Click on the 60th line (selection appears from 50-60)
Click on the 40th line (now selected are lines from
40 to 50)
Release the shift button.
This works not only vertically on the lines but even horizontally on one line.
Other functionality:
V. Bookmarks:
Right mouse click on a gutter or line numbers should add the bookmark. Second click on existing bookmark - remove it. Bookmark numbering - irrelevant. It will be just fine if we could see bookmark position on the vertical scrollbar (proportionally placed, and when clicked - caret jumps to bookmark). Like in Zend Studio 5.x. I'm not sure if this is easy to do, but this would be really good and speed things up (programming, orientating in code).
Don't know if you can add this thing as option (first-behavior/second-behavior)
VI. Searching for text in code: if nothing is found then it should start searching from top of the file. This could be called "Wrap at the end of file". And when this happens, PhpEE should signal about that. With sound or little tooltip balloon somewhere. This alerting wasn't even for Zend Studio 5.x.
VII. Search, button "Mark all": should not change caret position!!!
VIII. Autosuggest features:
1)Include "echo" "public" "function"...
2)Custom made code templates should be on top in autosuggest. Could be an option - call custom templates with Ctrl+J or include in autosuggest
3)Include basic JS autosuggest. Functions, parameters. No need for code analysis, just autosuggest as help. jQuery included would be huge bonus.
IX. Custom made code templates:
One could define template variables. Just like in Zend 5.x
Example template:(variables in brackets {} )
HTML::image('${src}',array('width'=>'{width}','height'=>'{height}','alt'=>'{alt}','title'=>'{alt}')){END}
1) When you call template, it appears and caret is positioned on first variable which is {src}, and variable is selected
bold-italics shows selected area:
HTML::image('${src}',array('width'=>'{width}','alt'=>'{alt}','title'=>'{alt}')){END}
2) you write "filename" and press enter. Now next template variable is selected
bold-italics shows selected area:
HTML::image('$filename',array('width'=>'{width}','alt'=>'{alt}','title'=>'{alt}')){END}
3) You write "200" as image width and press enter. As you can see - there is two template variables with the same name {alt}. They both are selected now. And as you type - they both are filled.
bold-italics shows selected area:
HTML::image('$filename',array('width'=>'200','alt'=>'{alt}','title'=>'{alt}')){END}
4) You write "My Picture" and press enter. {END} is reserved variable and meaning is - where to place caret after all template variables are filled.
Results:
bold-italics shows caret position:
HTML::image('$filename',array('width'=>'200','alt'=>'My Picture','title'=>'My Picture'))|
EDIT:
X. Redo: After file save, redo is lost. File was on remote server, if that's relevant.
EDIT2:
Search in files: Should be able to search in FTP directory too.
EDIT3:
File opening: Should be able to open file from explorer pane pressing Enter. Now it only works for workspace pane.
That's it for today. I'll update this list in the future.
Please, comment and tell your thoughts!