|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Oct 31, 2008 11:58 pm
Choosing a PHP IDE |
Quote: |
You don't need no stinkin IDE. Just code in NotePad! Back in my day, we didn't even have NotePad...we coded using punch cards. And we walked to school through blizzards and 10-ft of snow... |
Yeah, we've all heard this before. If you are some die-hard coder who thinks any IDE is a waste of time and money then you should probably stop reading right now.
When I write Windows software, I use Delphi, which has one of the most advanced IDEs anywhere. Many ideas that ended up in Microsoft Visual Studio came from Delphi. So my expectations for an IDE are pretty high. I'm not just looking for simple syntax highlighting (just use NotePad++ if that's all you want). I'm looking for all of the following:
- Code completion: When typing code, it displays a popup of functions/variables/etc that match what you have typed. You can press up/down arrow and Enter to select text, or you can just keep typing and ignore the popup.
- Code hints/tips: When I've typed the name of a PHP function, I want it to show a tooltip showing the different arguments of the function as I type (does the "needle" come first, or the "haystack"?)
- Code templates: I want to be able to type a simple phrase and then press a key to expand it into a full code template. For example, when I'm creating a new function I want it to fill in the comment section, the opening and closing braces, etc.
- FTP support: Although I mostly develop and test locally now, I want an easy way to upload my changes to my web server. A single keypress shortcut should save and upload my current file to the server...no prompts...just do it. SFTP is useful, but normal FTP is mostly fine. I care less about automatic "synchronization". Usually that gets in my way and slows everything down while it reads the remote directory. And I rarely need to "download" from my web server since all of my files are initially created locally and then pushed to the server.
- Syntax highlighting: I don't need anything too fancy here, but it needs to be customizable. Most default color scheme are awful. And there are usually more categories that I need. I don't want so much color that I go blind looking at my site. But some color is nice.
- Matching brace and tag highlighting: When I click on a parenthesis or bracket, I want to see the matching symbol. And when I click on an HTML tag, I want to see the closing tag highlighted too. Or when I click on a closing tag, I want to see the original tag. Code "Folding" is sometimes used as a replacement for this, but since I'm mainly sing the keyboard, I don't really like code folding. I just want to see the matching tags and symbols.
- File Explorer: I don't need some bloated project management system. Just show me my file directory on my local disk. Don't split folders and files into separate panels. Just give me a single tree-view that contains both folders and files. And do NOT collapse one folder when I look into another folder. I want to be able to keep multiple folders expanded at once. Implement the normal Windows File Explorer display and context menu so that I can access my TortoiseSVN version control system easily.
- Browser preview: I want to be able to display the snippets of my project in a web browser. It should support both IE and Firefox. Ideally I can click on different tabs to compare the two browsers, or see both at once. Even better would be a live update so that I can see the results in the browsers as I type and make changes to the code. What's important is to be able to display a page even if it's a snippet. When using a MVC framework, the Views are often just parts of the overall web page. I should be able to tell it what style sheet(s) to load (or it can figure that out by scanning my project directory).
- Debugging: This is a *huge* one. And this is where many IDEs fail. PHP is getting more and more complex, especially with OOP in PHP 5. Using simple methods like outputting debug text (to the main HTML output, or to Firebug or some other debug panel) just doesn't cut it anymore. I want to set breakpoints, step through my code line by line, examine variables. Application programmers would never give up their C or Delphi debuggers, so why should PHP programmers be any different? Just because debugging PHP is hard? FireBug is great for debugging Javascript, but to debug PHP you need an IDE that properly supports it. And it *must* understand that the page you are currently editing is *not* the page you want to "run". When using a framework, the main page that starts the application is usually in a different directory. So you need to be able to define the application start file and then go from there.
- Context sensitive help: When I press F1 over a PHP function, I want to see the quick reference help for that function. Same for JavaScript. Same for DOM properties. Same for CSS attributes. In fact, I'd like a customizable help system so I can add my own help. I don't expect the IDE to have built-in help for my specific PHP framework, so I need to be able to add it myself.
- Customizable interface: Toolbars and menus should be customizable. In fact, it would be nice to be able to define your own toolbars and buttons for adding your own code snippet, calling external tools, etc.
- Misc editing functions: I want to be able to indent/unindent blocks of code with a single key. Same with commenting/uncommenting code. Converting a block of code to lowercase is useful when importing old code that didn't follow the latest XHTML standards. Even better if all of these keyboard shortcuts were user-definable.
- Good support: I want good email tech support, customer support forums, and good documentation. I'd like to have good response to any bugs or suggestions that I send, with a product that is actively updated. But I want the updates fully tested so they don't cause anything else to break while I'm in the middle of a web project.
I think that covers most of what I want. Obviously I want all of this to be lightning fast, and as inexpensive as possible (but I'm willing to pay for support). So let's look at the various contenders...
I put this first because it really isn't much of a contender. While this is one of the best HTML and CSS IDEs, it's support for PHP is pretty basic. No debugging, and even basic features like code completion and code tips are pretty poor. It's also expensive. You might need a copy if you do heavy web design and not just coding. But don't fool yourself into thinking that it's a great PHP IDE. Maybe someday Adobe will recognize that PHP is the most popular web development language and add some PHP "love" to Dreamweaver. Well, I can dream can't I? Yes, I own Dreamweaver and use it for some stuff, but not as much as I used to...and never for coding.
I thought this one really had a chance. It's price is very low. And on paper it seems to have a lot of the features. It's only when you actually start using it that it just seems "off". The immediate problem that I ran into is that is separates your file view into separate panels for the folder and files. That's really "old school". These days I want a single tree view to contain files and folders. This allows me to keep multiple folders open at the same time (like my Views, Models, and Controllers). With the separate files/folder panels, I'm spending a lot more time navigating files than I should.
Even though I have modified my CodeIgniter framework to be more debugger friendly (the subject of my next blog), the debugger in PHP Designer didn't work properly. Mainly because you can't seem to define the starting application file to be run. It tries to run the current file that you are editing, which is completely wrong.
It's almost like the developers of PHP Designer don't actually do any real web development themselves.
I gave up on this pretty quickly. It had the basic syntax highlighting, but not much in the way of function tooltips. I did like that the F1 help opened in a docked panel so you could view the function reference at the same time as editing. But it only had a reference for PHP. Nothing for Javascript, or CSS, or DOM. And I couldn't see any way to customize the help system.
Customization was a general problem too. The menus and toolbars could not be customized or extended. And I didn't see any way to completely customize all keyboard shortcuts.
This one still needs some work, but might be worth checking on again in the future.
I'm going to keep this one quick...Zend obviously has the "name" because of their long-time work with PHP. But come on guys, I'm just not going to spend $399 on a PHP IDE. That's the same price as Dreamweaver (which is also overpriced). Since it's written in Java, it's slow. And it just seems bloated. They want you to use all of their products, including their Framework. Sure, you can use your own framework, but they only have added support for their own.
Honestly, if I want something Eclipse-based in Java, then I'll use Aptana Studio (described later) for free.
Sorry that I didn't give this one a fair review. I was totally turned off by the price. It's beyond my budget so it's not a consideration. Even if I thought it was the world's greatest software, which it can't be if it's not a native Windows app. Sorry to all of the Zend lovers out there.
Another big name player here: ActiveState. They are responsible for bringing Perl and Python to Windows and making them work with the Microsoft Scripting engine. Over the years they have added additional products, including their Komodo IDE.
If you use another other than just PHP/HTML/CSS/Javascript, then this is probably the IDE for you. It has full support for Perl, Python, TCL, much more than any other IDE I have seen. The interface is clean and streamlined. Doesn't have as many customization options as I'd like: no toolbar/menu customization, and even the file explorer panel mixes folders into files in a single alphabetical list, instead of putting the folders the top like we are all used to (no option to change this I can find).
Komodo is written using the Mozilla code, so it's cross platform, but lacks the look and feel of any particular operating system. It doesn't look like a Windows app, nor does it look like a Mac app. It's more of a "linux" app I think.
I couldn't find any FTP system for uploading files to a server. It might be buried somewhere, but not obvious. The "Preview in Browser" cannot handle PHP files that contain HTML. It just displays them as raw code in the browser. And I didn't see any way to change the browser from their internal Mozilla code to IE.
I couldn't get the debugger working because I couldn't figure out how to tell it to use an external web server and where to tell it the main file of my application to run. It seemed to just try to run the file being edited. You'd think there would be something like a Project Properties, but I didn't find that.
Pressing F1 just brings up the Komodo help. Looks like they just open web links to web-based reference materials. Can't see how to make that context-sensitive. The code completion and code tips seem to work fine and include all languages, including Javascript and DOM. So that's nice. But it's pretty basic. For example, in CSS when I type: "dis" then I can select "display" from the pulldown, but it doesn't add the : colon automatically. I type the colon manually and then a space and I can select one of the attributes, like "block", but it doesn't add the ; semicolon to the end. It's a little thing, but could be improved. I'm all about the little details.
It does have a couple of nice tools, including a regular expression builder/tester. But since those are available for free elsewhere, you don't really need it integrated into your IDE...especially if you find an IDE that will easily run external tools like this.
All in all I couldn't really recommend it. Price is a bit lower than Zend, but still rather expensive.
I spent quite a lot of time with this one. It's about the same price as Komodo, although they are currently having a sale for $199. That's getting into a better price range (although I'd still like to see it lower).
This is actually a very nice IDE. It feels a lot like Delphi, which is what I'm used to (I think it might be written in Delphi actually). It's very fast with it's syntax highlighting and overall application operation. It is *very* customizable and is the first IDE I have seen to let you completely customize all aspects of menus, toolbars, and shortcuts (ALL shortcuts, even their menu shortcuts).
This was also the first debugger that I was actually able to get working with the CodeIgniter framework, although it took some modifications to CI. I'll be posting the details on how to do that in my next blog entry. So it works well with external web servers and has the proper fields for entering the main application file that you want to run. All of the debugger features seem to work fine, including breakpoints, stepping through code, inspecting variables, etc. Very nice and a huge plus.
Still has a few quirks. For example, if you select multiple lines and tell it to Comment the selection, the line after the selection (where the cursor is at the beginning) also gets commented, which is shouldn't.
The code completion and tips mostly work fine, but not for JavaScript or DOM. However, with CSS, it adds the automatic colon and semicolon that I mentioned in the previous review, which saves a bit of typing. Pressing F1 displays help in a separate tab. I can't figure out how to dock this elsewhere, so you have to flip tabs to go between the help and the editor, which is annoying.
While it does matching brace highlighting, it doesn't match HTML tags and closing tags. It does have code folding, and when you hover the mouse over the code folding plus/minus it shows the extent of the code, so you can use that to find the matching tag. But still a bit annoying.
It has a built-in Firefox and IE preview, and can also be set to use external browsers. But this is for when you "run" the application (with or without the debugger). I couldn't find a way to just display a snippet of HTML in the current file, like with Dreamweaver.
It has several other tools, including a Database client. But the Database client doesn't let you modify any data in the database, so I'd still rather use an external tool such as HeidiSQL. I haven't figured out how to add external tools to the menu system though.
All-in-all, not a bad product. Since it's the only one that I've gotten the debugger working with, it might be the one that I end up using. But I need to think about it a bit more.
This is the IDE I've actually spent the most time with. I developed the entire www.slightlymorbid.com site with it. The main advantage is that it's based upon Eclipse and is free. The main disadvantage is that it doesn't have a debugger, except in the brand new Beta version.
You need to install the PHP Extension plugin for Aptana. If you use Ruby on Rails, it also has the RadRails IDE. So if you use Ruby, this is probably a good IDE choice for you.
I'll post an update about the new debugger when I get a chance to try it. I'm waiting till it's out of beta status because I don't have the time to mess with beta software right now.
Since Aptana is based around Eclipse (it's really a standalone version of Eclipse), it uses Java, so it's slow. Similar to Zend Studio. It's gotten faster over time, although their latest update messed up the speed of their syntax highlighting. Hopefully they can fix that soon.
That's another downside. While Aptana gets updated frequently, it's open source and sometimes there are new bugs in the update. I suddenly couldn't comment/uncomment selected lines anymore, for example. Well, as they say, "you get what you pay for".
Code completion works great. For everything including Javascript, DOM, and CSS. For CSS it adds the trailing semicolon, but not the initial colon. Code Tips seem to be missing for PHP, which is a problem. I think there is a way to add that, but I haven't figured it out.
The toolbars and menus are not customizable. Nor are many shortcuts. The FTP system works fine, but for SFTP you need to buy the Pro version.
All in all, it's not bad for a free IDE, especially if you are already used to Eclipse. I used this IDE for www.slightlymorbid.com before I had time to evaluate some of the other IDEs. There is definitely a big difference between this free IDE and the paid ones. I think almost any of the paid IDEs are better in most ways. But are they $200-$300 better? I'm not sure about that. It will depend upon whether the debugger ends up working.
Conclusion
Honestly, I was still pretty surprised at the rough state of PHP IDEs given all of these years that they have been available. They are getting better, but nothing close to what application developers are used to with products like Delphi or Microsoft Visual Studio. If you want that kind of IDE, then you'll probably just want to do ASP.NET web development and forget about PHP entirely.
But for those of you who want to develop PHP applications, you have to be ready to compromise. And you'll probably pay more than you'd like.
Right now I'm leaning towards PhpEd, mainly because it's the only debugger I've gotten to work. And because of it's vast customizability. I feel like I can eventually make it do everything I want and it's just a matter of spending more time with it. It's the only IDE that gave me that open-ended feeling. And the price, while it's on sale, is getting more reasonable. If they go back to their normal $299 price, then I'd be a lot less interested, and more willing to give some other others like Zend a more extensive evaluation. Or maybe PHP Designer will fix it's rough edges and take on the competition at their much lower price point in the future.
If I have missed some great IDE, please let me know about it. If you find that I'm in error about any of my facts in the above review, please also post and let me know so I can correct them. I was testing all current public versions at the time of this writing. Obviously things might change in the future as features are added or bugs are fixed. |
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Sat Nov 01, 2008 1:17 am |
Your point about customizable help should be carved in stone, inscribed onto monoliths displayed at conventions and tattooed on the backs of errant programmers' hands. It is, frankly, an awesome feature and it behooves any program that involves the inputting of some kind of code (including CMUD :P) to have it. "What does this function I wrote six months ago do again?" begone!
|
|
|
|
Rorso Wizard
Joined: 14 Oct 2000 Posts: 1368
|
|
|
|
ralgith Sorcerer
Joined: 13 Jan 2006 Posts: 715
|
Posted: Sat Nov 01, 2008 1:56 pm |
Thanks Rorso, I also didn't know Netbeans was adding php support. Cool, since I've also been trying to choose a php IDE ;)
Kinda TIRED of doing it in notepad or gedit (Linux) or joe (Linux SSH Console) |
|
_________________ CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate |
|
|
|
slicertool Magician
Joined: 09 Oct 2003 Posts: 459 Location: USA
|
Posted: Sat Nov 01, 2008 5:11 pm |
Bah, notepad is for noobs, Zugg. The big kids use UltraEdit which is an over-glorified notepad... which is what I use... I'm a hack... *cries*
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Sat Nov 01, 2008 5:18 pm |
Rorso: Thanks for the link. I hadn't seen the new version with PHP support so I had written NetBeans off as just a Java IDE. I'll have to download it and try it to see if it's fast enough for me, or if it's just going to end up being the same as Aptana Studio. I'll give it a try next week and post my results.
Ralgith: At *least* use NotePad++ instead of regular NotePad. I use NotePad++ for all of my normal editing of text files, and even use it to view some of my Delphi Pascal files now and then when I don't want to bother waiting for Delphi to open. It adds itself to the Windows right-click menu so it's really easy to load *any* file into it (even binary). It's syntax highlighting is quite nice and it has a ton of good features for a text editor. It's based on the Scintilla editor component, which is the same editor component that I use in CMUD. It's fast, stable, feature-rich and free. A good choice if you don't need debugging support. I believe there is even a program called SmartFTP that can be used with NotePad to make it easier to upload files to a server. |
|
|
|
Rorso Wizard
Joined: 14 Oct 2000 Posts: 1368
|
Posted: Sat Nov 01, 2008 6:10 pm |
Zugg wrote: |
Rorso: Thanks for the link. I hadn't seen the new version with PHP support so I had written NetBeans off as just a Java IDE. I'll have to download it and try it to see if it's fast enough for me, or if it's just going to end up being the same as Aptana Studio. I'll give it a try next week and post my results.
|
The main slow thing is the startup of the IDE. After that it runs quite fast. You'll want to make sure that you use the latest JRE from Sun. In earlier versions of Fedora Linux I experienced many Java applications ran slow because of a custom JRE. NetBeans is quite nice to use when developing Java applications, and you can for example connect it to Subversion so that you see in the margin where you have been editing the code(a feature that exist in Eclipse as well). |
|
|
|
ralgith Sorcerer
Joined: 13 Jan 2006 Posts: 715
|
Posted: Sat Nov 01, 2008 6:18 pm |
It is NotePad++ ;) I just didn't clarify. It just gets old after awhile.. I like the features I'm used to in a proper IDE, such as being able to search all files that are part of a project, or being able to edit several files at once in tabs (al la Visual Stuido or Anjuta[Linux IDE]), and proper language syntax highlighting. I'm spoiled.
|
|
_________________ CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate |
|
|
|
Seb Wizard
Joined: 14 Aug 2004 Posts: 1269
|
Posted: Mon Nov 03, 2008 2:12 pm |
ralgith wrote: |
It is NotePad++ ;) I just didn't clarify. It just gets old after awhile.. I like the features I'm used to in a proper IDE, such as being able to search all files that are part of a project, or being able to edit several files at once in tabs (al la Visual Stuido or Anjuta[Linux IDE]), and proper language syntax highlighting. I'm spoiled. |
Wow, I'm glad I took another look at NotePad++! I've been using TextPad for ASP and other things I dive into briefly, and when I last looked there didn't seem to be a whole bunch of difference, but I see NotePad++ has come on leaps and bounds since then.
ralgith, NotePad++ *is* able to edit several files at once in tabs, or even with two set of tabs open at once split across the screen, which I think is pretty neat. |
|
|
|
ralgith Sorcerer
Joined: 13 Jan 2006 Posts: 715
|
Posted: Mon Nov 03, 2008 6:26 pm |
Quote: |
ralgith, NotePad++ *is* able to edit several files at once in tabs, or even with two set of tabs open at once split across the screen, which I think is pretty neat. |
Correct enough I suppose... I don't ever really use it that way though. However I was more concerned with the other tools like "Find in Files" or "Replace in Files" from Visual Studio and other big IDEs. That and syntax highlighting. Damn me for a wimp, but I like to see what all is what ;) Truth be told I had forgotten NP++ could do the tabs, because when I first started using it I either wasn't aware of it or it wasn't yet something it could do. And I will admit I have been very spoiled by IDEs... but as I'm sure Zugg either said or thinks about, the amount of time saved by doing it the easy way in an IDE is soooo worth the effort of finding a good one. Everything an IDE does for you is one less thing you have to do, which means that much more time to worry about the important part, the code.
Just my opinion, and at any rate... back to my code ;) |
|
_________________ CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Nov 03, 2008 8:11 pm |
I know that several of the IDEs that I looked at had Find in Files and Replace in Files kind of features. But honestly, I reviewed so many that I can't remember which ones had these features...I'd have to go back and look at them again.
But to get this thread back on track, NotePad++ is a nice text editor, but it is *not* an IDE of any sort. So let's cut off the discussion of that for now and get back to the real PHP IDEs. As far as I'm concerned, if something doesn't have a PHP debugger, then it's not a true IDE. |
|
|
|
ralgith Sorcerer
Joined: 13 Jan 2006 Posts: 715
|
Posted: Mon Nov 03, 2008 10:36 pm |
Well, I'd like to hear your opinion on Netbeans once you check it out for php work. I'm still in the market myself but not immediately. I want to finish my other learning before I tackle php.
|
|
_________________ CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Nov 07, 2008 11:02 pm |
OK, I finally had some time to install and play with Netbeans last night.
Overall I'd say that it's not bad, and probably beats out Aptana Studio. I ran into a few quirks with it's auto-completion for PHP...you *always* seem to need to press Ctrl-Space to get any sort of autocompletion. Even when you tell it to automatically popup the autocompletion, it doesn't seem to work in PHP. Works in Javascript though. Pressing F1 just displays the very limited help file for Netbeans and doesn't do any context-sensitive help searching. If you press Ctrl-Space while the cursor is at the *end* of the function name, then it will display the short help for the PHP function. And when you press Enter to select an auto-completion, it does automatically enter the various parameters for the function (like $needle and $haystack for the strpos function) and you can use Tab to move from argument to argument to fill it in.
The debugger does have the proper fields for specifying the main application file to run. I haven't gotten it to work quite yet because I've got the PHP Debugger for PHPED installed and I need to get XDebug installed instead for NetBeans. I'll have to look into that tonight.
I was excited by all of the available plugins. In particular it seemed to have a SpellChecking plugin. But I can't get it to work at all. I installed the SpellChecker along with the English Dictionary and restarted NetBeans. But when typing a mispelled word, it does *not* get highlighted in any way, and I can't find any spellcheck command in the menu system. There is a Spellchecker tab in the Misc Properties dialog where you can select a dictionary, so it seems that the plugin is installed. Just can't get it to actually do anything. Very disappointing since the lack of spellchecking is the only thing I currently don't like about PHPED (which is the IDE I'm currently using most often). I'm getting tired of running Dreamweaver just to spellcheck stuff.
NetBeans *does* have a fairly nice CSS panel for making it easier to create and edit CSS styles, including a nice "preview" panel showing the current text properties. It doesn't work in all cases though. Using several different CSS selectors seems to cause the preview to stop working. But it's a nice feature, and includes a decent color selector utility.
Javascript works great, as expected, with full DOM autocompletion. I just hope they can get the quirks out of the PHP auto completion. Without the automatic autocompletion popup, PHPED is still my choice for faster PHP coding. But NetBeans is certainly a close second, and it's free.
The speed seems pretty good so far. I loaded a large PHP file and introduced a quote error at the top, causing every line to show as an error, and the background syntax highlighting didn't really impact the speed of typing. Every now and then there seems to be a slowdown as it updates it's navigation window, but I can always close that window if it gets in the way.
PHPED seems to handle embedded multiple languages a bit better. When editing a PHP file that contains HTML code, performing a "Comment selection" in PHPED properly adds the < ! -- HTML command, while NetBeans always adds the // PHP comment instead. Again, definitely a few rough edges in the NetBeans PHP support.
Both PHPED and NetBeans have a "Ctrl-Click" function for jumping to the declaration of a function. Neither can handle the CodeIgniter model classes. For example, if you have $this->Model->function(whatever) and ctrl-click on "function", neither will load the Model.php file to show the "function" declaration. However, if you have local functions within the current file, like $this->myfunction, then it works. Also, for CodeIgniter "helper" functions the Ctrl-click works in both programs. Neither program bind the mouse back/forward buttons, but you can do this with an external program such as "X-Mouse Button". (Edited: X-Mouse Button seems to work for PHPED, but not for NetBeans...probably a Java issue).
NetBeans does have a nice set of Code Templates that can be inserted. You can choose whether to insert using the Tab key (default), or change it to the Space key, which is what I'm used to in Delphi. So I can type "if" and press Space and get a full template for an if statement. PHPED cannot assign the Space key to insert code templates. The NetBeans code templates are much more powerful.
NetBeans has a nice dockable window interface, making it easy to customize the interface to your liking. And it seems to allow full keyboard shortcut customization of every function, and has full toolbar (but not menu) customization as well.
On the editor interface, NetBeans has a X close button on each tab, PHPED does not. Yeah, a small difference, but I like having an X on each tab so I can close files without changing the current file being edited. On the other hand, when you open NetBeans, it doesn't seem to remember which directory was last open, so the project directory is completely collapsed. PHPED remembers the directory you were last editing and expands the tree view to show that directory. Saves a bit of navigating when first starting the editor. PHPED also has the concept of "Workspaces", which are collections of projects. NetBeans just has Projects.
Both PHPED and Netbeans have a nice Navigator panel that shows the functions in the current file. When viewing CSS, NetBeans can show all of your CSS rules in the Navigator, and PHPED cannot. Same with JavaScript...NetBeans shows the functions in the file, PHPED does not. So again, PHPED is really specific to PHP and breaks down on other file types.
NetBeans has better support for various 3rd party Javascript libraries (such as YahooUI, Scriptaculous, etc).
If I could figure out how to get the spellchecker working, I'd switch to NetBeans in an instant! Otherwise I'll have to play with it a bit more to see if I can overcome the issues with code completion. I'll also see if I can actually get the debugger working with CodeIgniter like I did with PHPED. In summary, Netbeans is definitely worth looking at when deciding on an IDE.
[Edited] Ack! After all of that positive review, NetBeans does NOT have built-in FTP support. There is an FTP Plugin, but it seems to cause NetBeans to give error messages. I cannot get it to work. And even if they fixed the crashes, it's just an FTP "Explorer". It doesn't add any commands to synchronize or upload the current file. Sorry, but my fingers are trained to do Ctrl-Shift-U to upload an updated file to my server. I don't want to use a separate FTP utility or go into an "explorer" to update my files. I can already do that in my Windows Opus file explorer. I want INTEGRATED FTP support in the IDE. I can't believe that they don't have this! All of the other serious IDEs have this. What are they thinking? Sigh...cannot use NetBeans without this. Back to PHPED for me. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Nov 07, 2008 11:19 pm |
OK, a followup on the FTP issue. It seems that Netbeans *does* have built-in FTP support without a plugin. However, the way they have implemented it is not good. What you need to do is go into your Project Properties and change the "Run As" option from "Local Web Site" to "Remote FTP Site". Then you can define your FTP server and it will add upload/download file options.
However, doing this prevents you from doing local debugging. They need to realize that we need FTP upload/download but still perform *local* debugging! So it's still a problem that makes NetBeans unusable for me.
[Edited] OK, nevermind. Even though it looks like using "Remote FTP Site" is going to change your debugging environment, you can still select a local URL for running the site. So you *can* enable FTP for file upload/download and still debug locally. It's just not a very obvious place to put the FTP stuff. So I've got my Ctrl-Shift-U shortcut set up for Upload now. The only downside is that it displays a confirmation box before uploading the file, instead of just doing it. So after Ctrl-Shift-U I have to hit Enter to accept the OK box on the confirmation dialog. Close enough I guess. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Sat Nov 08, 2008 12:16 am |
Well, I cannot get XDebug to work with Netbeans with PHP 4. Looks like Netbeans only supports PHP 5. I found the proper DLL for PHP 4.4 for XDebug and I installed it and added the proper entries to the PHP.INI file as mentioned by NetBeans:
Code: |
zend_extension_ts=C:\xampp\php\extensions\php_xdebug.dll
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000 |
but when I set a breakpoint and run the PHP code in the debugger, it never stops at my breakpoint. If I try it again, it says the debugger is running but then gives an error about it not being able to communicate with the debugger and tells me to add the above lines to my PHP.INI file. I have no idea what is wrong. But at this point I've wasted enough time with this. I'm going back to PHPED where the debugger works properly. Maybe I'll give Netbeans another try later in the future. But if they are not going to support PHP 4, then I probably won't bother until someday in the distant future when I have the time to convert the entire zuggsoft.com site to PHP 5. Don't hold your breath. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Sat Nov 08, 2008 12:43 am |
Just...can't...give...up....
Yes, I'm stubborn. OK, the php_xdebug.dll that I was using was for PHP 4.3 and I was running PHP 4.4.6. The only version on the xdebug.org site was for PHP 4.4.1. I tried to install that, but it kept crashing my local Apache server. After extensive net searching, I finally found an xdebug DLL for PHP 4.4.6. Installed that and now it will go to the first line in the PHP file and stop. But when I try to continue or step forward, I get a Socket error and instead of going to http://localhost it starts looking for www.localhost.com.
According to some searching in the Netbeans forums, it seems that this might be a known bug with the new Netbeans PHP. They probably never tested it with PHP 4 stuff. So I think I'm officially screwed on this now. |
|
|
|
ralgith Sorcerer
Joined: 13 Jan 2006 Posts: 715
|
Posted: Sat Nov 08, 2008 3:00 am |
Ok, sounds like a big hassle for you for nothing. However since I'm using php5 it might be good for me. Thank you for the info.
|
|
_________________ CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Sat Nov 08, 2008 5:10 am |
I think I might have just found exactly the PHP editor/IDE that I need! I don't know why nobody has been talking about this one, because so far it's really great. It is called Rapid PHP. And so far I am *very* impressed.
First the bad...it doesn't seem to have a way to specify the main project file to run for debugging or previewing. I have emailed their support about this to see what they say and to test how good their support is. But this program seems to be very actively maintained, so I've got my fingers crossed.
This is a native Windows app, so it is fast fast fast. Looks like another Delphi application because I recognize the DevExpress customizable menu/toolbar system and the window docking system. So yes, everything is fully customizeable.
Surprises that I love so far: It has as-you-type spellchecking. This is actually how I stumbled across it because I was really getting tired of using Dreamweaver for my spellchecking, and I just couldn't get NetBeans spellchecking to work (seems it only worked for Netbeans 6.1 and doesn't work in 6.5).
It has some really nice CSS tools. For example, it has a font, style, color, etc toolbar that you can use just like a normal word processor to create the CSS rules that you need, including full color pickers and a nice "Edit Box Properties" that lets you interactively set padding, margins, borders, etc. This is as good, if not better, than any CSS support I have seen anywhere, including Dreamweaver!
The auto-completion works perfectly for PHP, CSS, HTML, and Javascript. In CSS it adds the colon *and* the semicolon at the end. In HTML it will auto-fill the closing tag when typing and position the cursor properly, or auto-complete the closing tag as needed. With PHP it auto-completes the functions and displays the proper function tooltip. If you press F1 on a PHP function, it opens the official PHP manual entry in your browser. If you press F1 on a CSS attribute, it opens a local CSS help file. Pressing F1 on javascript DOM stuff (like getElementbyId) doesn't do anything, but DOM auto-completion works great. In PHP it also auto-completes the local functions and variables in the file and seems to have support for objects, but still can't navigate into the CodeIgniter framework objects. So far, this is actually the best working auto-completion and tooltip feature that I have seen out of all the editors I have tried.
It has FTP support, and I can assign Ctrl-Shift-U to automatically save and upload my file without clicking any confirmation box.
It has debugger support (XDebug again), so this might be similar to getting it to work in other IDEs. I haven't gotten the debugger to work, but I think it's worth putting in a couple of hours and posting some support questions to see if I can get it to work. It seems to have all of the same debugging features as all the other IDEs, so it's just a common issue of figuring out how to get XDebug to work on this system.
The File/Project explorer has options for either split directory/files, or an integrated tree view how I like it. Nice to have the option. The tabs don't have their own X button...you have to middle-click to close a tab (or right-click and select Close), which changes the editor file to the tab that you clicked on. But that's minor.
The Code Explorer works with PHP, CSS, and Javascript to show the structure of the file's code, and has several options for grouping the structure. It has a Find in Files and a Replace In Files command, which is nice. And it does full bracket and tag highlighting. In fact, when you have the cursor within an HTML element, the opening and closing tag are always highlighted. In PHP, the {} of the block containing the cursor is always highlighted.
The PHP syntax highlighting and syntax checking is lightning fast. Faster than any other IDE I have tried. There is *no* typing lag, and even if you set the auto-completion popup to 0ms, it doesn't slow down your typing...the autocompletion displays instantly. Has Column selecting like NotePad++, along with normal Code Folding, although Code Folding doesn't work if you have WordWrap enabled.
It has code templates, but I can't seem to insert them after typing a space. But you can set up a shortcut key for these code snippets. Still investigating these. You can press Ctrl-J to expand them, but there seems to be a bug with that currently that I'm going to report that doesn't use your current indentation properly.
Has a basic SQL Query tool, but does not have a live editable table view like HeidiSQL does. So it's good for inspecting tables, but not for full database management. Has a Library of snippets for HTML, PHP, CSS, etc, that is completely customizeable. That could be a nice feature for saving commonly used routines and including them in other projects.
Has all sorts of stuff for formatting HTML or inserting HTML code, such as a table creator, font creator (although uses FONT tag instead of inserting CSS inline).
Just tons and tons of stuff here. Like I said, this has been the first PHP IDE that has caused me to go "Wow!" instead of being disappointed after the first 5 minutes of using it. And the price is low. It's not free, but it's only about $60, which is a much more reasonable price compared to it's competition.
If I can resolve the debug issue, then I'm definitely going to buy this! |
|
|
|
elnaz1010 Newbie
Joined: 17 Dec 2008 Posts: 3
|
Posted: Wed Dec 17, 2008 4:59 pm |
hi all
first of all i want you to know, i have just found this forum in google and saw the reviews and im very impressed, registered in this forum so i can say a BIG thanks to Zugg for great reviews, i really liked that, (sorry there is no "thanks" button to press here ).
second thing is PHPED released in new build on 5.6v and they said new CSS editor added and some more, if u have time have look on it maybe helpful.
another time thanks so much for review and sorry if i had a syntax mistake in my post
EDIT:
ok i tested the "Rapid php", and im disagree with you, after 5min of working with it, it get me a fatal error(and a restart program for sure) and there is no code completion when u create an object for example:
Code: |
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement; |
btw i tested all the latest version of these programs in this week:
Zend 6.1
Phped 5.6
Rapid php 2008 v9.3.101
Php Designer 6.2.1
Dream weaver CS3
Net Beans 6.5
and honostly 1st is Phped and second is Zend (for slow prob and some code completion) and i know the choosing thing is all personal and every one have a deferent idea, so do NOT blame me on this if u are disagree with me.
for me code completion is a big deal because im very new in PHP and i need to see each property i use in any object.
just wanted to show some of my experience so maybe some day helpful for someone :) |
|
|
|
ralgith Sorcerer
Joined: 13 Jan 2006 Posts: 715
|
Posted: Thu Dec 18, 2008 7:42 pm |
So Zugg, where do you stand on all this? Did you get the debugging to work?
|
|
_________________ CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Dec 18, 2008 10:30 pm |
I haven't been doing as much PHP over the past couple of weeks, but I'll probably post more details in January when I start doing the website rewrite.
Quote: |
after 5min of working with it, it get me a fatal error(and a restart program for sure) and there is no code completion when u create an object for exampe |
As always, "your mileage may vary". Personally, I have *never* had any crashes with RapidPHP, and I've used it for many hours at a time, and even on flaky Vista. So I have no idea what might have caused it, but if you can reproduce it, email them since I have found their customer support to be pretty good.
On the code completion, yes, many editors have trouble with object references. I only need code completion for the basic PHP functions and stuff. DOM completion always seems to be worse than the PHP code completion. I haven't figured out how to add my own code completion data to RapidPHP yet, but I'll look into that next month. But technically, the example that you gave is not "PHP" code completion, it is "DOM" completion...you are expecting it to know the properties of an object that you declared with "new DOMDocument" and that is very difficult for any editor to do. But I'd also like to find something with extensible code completion so that I can add the Code Igniter framework objects to the code completion system.
My problem with PHPEd is their lack of spellchecking support. For the specific web project that I was working on last month, I was doing a lot of HTML text and needed the spellchecking. I got tired of going back and forth between PHPEd and Dreamweaver just to get spellchecking. PHPEd is still quite good, but right now it's second to RapidPHP for me, mostly because of price differences. But I haven't needed to debug in RapidPHP lately, so I'd still need to go back to PHPEd for that. And when I'm doing more visual site layout and design, I still use Dreamweaver a lot.
Remember that in my original specification, price is a very important consideration for me. I won't even evaluate Zend because of it's high price...I really don't care how good it is for that price. So for me it's not completely about features.
Quote: |
Did you get the debugging to work? |
What I learned about debugging is that there seems to be an issue between XDebug (used by many IDEs) and PHP 4. Since PHPEd doesn't use XDebug, they are the only IDE that seems to work properly with debugging PHP 4. None of the XDebug-based IDEs, including RapidPHP, would work with PHP 4 and I just ran out of time to try and mess around with it. Next month the web site rewrite will use PHP 5 and I'll be able to try to get XDebug working with that instead. I'm hopeful that XDebug will work fine with PHP 5, including in RapidPHP. But I'll certainly post my detailed experiences here.
Finally, as elnaz1010 mentioned, not everyone is going to agree with me on this. But I don't really want this to turn into a huge discussion...it's my own Blog after all. There are plenty of other review sites out there, and you should always read multiple reviews and then take advantage of free-trial versions before making a decision to buy any software.
For me, price, debugging capability, speed (and all of the other requirements I mentioned in the first post) are most important. But some people don't care about code completion, some other people might not care about debugging, and some other people might only want something that is totally free. What I have tried to do in this blog is be very clear about the features that I am looking for (in the first post) and evaluate and discuss based upon that list. Not everyone will agree because not everyone will have the same requirements. |
|
|
|
elnaz1010 Newbie
Joined: 17 Dec 2008 Posts: 3
|
Posted: Thu Dec 18, 2008 10:57 pm |
maybe its not a good question but with these IDEs (every of them has lack on something so that never ever can compare with visual studio in all aspect (except price)) is it a smart way to switch to ASP.net so u can have a huge increase in development speed (if u dont care about prices) and make development easier and more reliable?
i hope u can get my mean.
can u answer me Zugg?
(az i mentioned before im new to PHP but highly exprienced in C++ and C# so i can start with ASP easily instead of PHP) |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Dec 18, 2008 11:49 pm |
It's up to you. Plenty of people like ASP.net. Personally, I never plan to touch it. I got burned with doing my site with the original ASP many years ago and stuck myself into a position where I required a Windows hosting server. My experience with Windows Hosting servers has been very bad. The hosting company that I was using didn't really understand how to manage Windows servers (even though they claimed they did), and they neglected to update the security patches, resulting in our server getting hacked and losing all data. That's why our forum posts don't go back further than 2002/2003 or so.
So now, I always want to design web sites that are cross-platform. And that means PHP. I don't actually think there is any real difference in development speed between ASP.net and PHP. PHP syntax is the same as C. And in either case you will need to learn the libraries and routines that really make up a bulk of web development. And I don't think ASP.net is either "easier" or "more reliable".
Anyway, I don't want this to become a PHP vs ASP.net debate. Remember that this is my blog and if someone takes it off track I'll just delete your posts, so please don't make me do that. But you asked for my personal opinion, and my personal opinion is that I'd never use ASP.net and will always pick PHP because it runs on both Windows and linux and is a very mature, secure and reliable web application development system. If I was doing web design for other customers, I wouldn't want to lock them into any specific server platform. |
|
|
|
elnaz1010 Newbie
Joined: 17 Dec 2008 Posts: 3
|
Posted: Fri Dec 19, 2008 5:09 am |
ok (my mean about words easier and more reliable was becasue of the good IDE [VS] that i was talking about not from language it self,when you have a nice IDE u can make your site easier), thanks for sharing your idea and a big sorry for ruined your forum structure with that question, i mean it.
u can delete these two post already and its 100% ok from me (there was no delete button so i cant delete it myself)
regards. |
|
|
|
Rorso Wizard
Joined: 14 Oct 2000 Posts: 1368
|
Posted: Fri Dec 19, 2008 11:13 pm |
elnaz1010 wrote: |
ok (my mean about words easier and more reliable was becasue of the good IDE [VS] that i was talking about not from language it self,when you have a nice IDE u can make your site easier), thanks for sharing your idea and a big sorry for ruined your forum structure with that question, i mean it.
u can delete these two post already and its 100% ok from me (there was no delete button so i cant delete it myself) |
The experience I have with PHP is that an IDE is not really needed, but probably nice to have. When I wrote my zScript syntax colourizer script I wrote large part of it using Emacs. The trick seems to be to try separate the GUI from the code as much as possible. That way you can edit the GUI with a WYSIWYG editor, while doing most of the PHP in notepad/Emacs. It is sometimes not so fun to debug using the "echo" method though . |
|
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|