Switching IDEs! CodeIgniter Users Should Too!

I don’t know about you, but changing IDEs is a major thing for me. As my development skills have progressed over the years, I have been looking for more ways to take advantage of the development software I’ve been using. I am constantly wanting to improve my development experience and trying to find ways to speed up programming. Well, this past week, I basically did an assessment of Dreamweaver and here are my conclusions.

  • Dreamweaver Pros
  • I like the code colors. (or maybe I’m just used to them)
  • “Upload on Save” feature. – I used to not be able to live without this feature, but as I’ve progressed as developer, I’ve been using a local webserver for testing before uploading anything to server. It makes development and testing a WHOLE lot faster.
  • Great Find/Replace tool (with Regex)
  • Not-so-bad code completion (at least for PHP)
  • The interface is easily de-cluttered.
  • Mac and PC versions available
  • Dreamweaver Cons
  • It’s really a glorified Frontpage. The application was designed for programmers and Front-end designers with little programming experience (more-so for the latter)
  • Limited programming tools
  • Bloated – As with most Adobe products, you never want to set any of them to an “Open with [this] by default” setting unless you have a pretty awesome computer.
  • Poor FTP – With me it was always timing out.
  • Most of the built in features are for people that don’t know how to program or want a more “point-and-click” way of doing things.
  • EXPENSIVE!
  • They tend to add useless features that only junk up the application, like Code Navigator and Spry

So I searched far and wide for as many IDEs I could find to install and test on my machine. Here are some of the ones I tried out:

  • Aptana
  • PHPEclipse
  • PHPEdit
  • Zend Studio
  • Komodo IDE
  • RapidPHP 2010
  • e Text Editor

Now there are several websites where you will find reviews of the software mentioned above, however that’s not really what I wanted to accomplish in this post. I really wanted to compare the previous tool I was using with a new one. I could go on and on all day about what features I believe an IDE should have as well as my likes and dislikes of all the software above, however one piece of software I was really impressed with is phpDesigner (version 7).

As of this past week, I have officially moved on from ten years of using Dreamweaver to this very fine piece of software. You may have heard of it or tried it yourself, although I can’t speak for past versions. Let me just start by pointing out my most absolute favorite feature of this software. It’s a feature that I’ve been looking for in pretty much every piece of software I tested, but couldn’t find done as well as phpDesigner. phpDesigner doesn’t have any special name for it, but it’s the Code Completion tool I have wanted for years.

Just to give you an idea as to how much work it took to get this working here are the steps I took when testing this software:

  1. Create a new project (I used a project I was currently working on that was using the CodeIgniter framework)
  2. Open a file in the project
  3. Code completion automatically works.

That’s IT! And not only does it work for all the classes and methods built into CodeIgniter, but it also adds the classes I write into the code tips as well. You should check out some of the videos on their website to see this in action. They even use CodeIgniter in their examples, however I believe this will work with any PHP framework out there. The best part of it all: it’s super fast! I did find one or two other pieces of software out there that did something similar, however I was typing much faster than the letters would spit out onto the document due to software constantly trying to parse my text to decide what code hint or suggestion to display.

Here are some other features I really like in phpDesigner that I didn’t have in Dreamweaver:

  • Built In Inline Debugger (with no additional setup or local web server required)
  • CTRL+Click on a method or custom function takes you to the declaration of that method/function
  • Custom syntax highlighting colors – Although I REALLY liked most of the default PHP color settings.
  • Auto completion library (the CTRL+J function)
  • Inline TODO and BUG panel
  • Support for PHP 5.3 (and any future versions)

Here are the features that (thankfully) carried over from Dreamweaver:

  • Customizable shortcuts (although it will not allow me to use Space or Enter in shortcuts)
  • Tabs for open files (with the ability to reload open)
  • Regex Find/Replace tool with the ability to search within a set of folders inside your project
  • Tabs for open files (with the ability to reload open)
  • Code Snippets

I hate to do this, but I must be objective. Here are my gripes:

  • The software has built in FTP, but no simple way uploading one file to and FTP sites relative directory. This problem is somewhat manageable by creating your FTP accounts in the Tools > FTP menu and having the FTP/SFTP panel side by side with the Project panel, however I would really like to have a feature where I can click a file in the Project panel and then click Upload, and it uploads in the corresponding directory of the remote site. The tool I thought that did this required that I select the FTP account and the directory every time I wanted to upload a file.
  • I would like for it to support Space and Enter in the keyboard shortcut customizer.
  • You cannot CTRL+C / CTRL+V Copy/Paste in the Project panel. There are 2 ways around this, however one way has another gripe. You can right click a file, but then you are given a custom context menu (bleh) which you must then click Shell menu to see the Copy command. (follow the same process for paste). The 2nd way is by clicking the folder location of the open file in the Status Bar, and using Windows to copy/paste.
  • The Project panel goes nuts when your project is on Network or Mapped drive with constantly updating the file list. It inserts a new item at the top of every open folder reading
    “Loading folder content” which is constantly distracting as well as irritating when you’re trying to work with files in that panel. This is not a problem for me at home for I’m working off a local drive, but at work it’s a bit frustrating.

The software is still a bit larger than I’d like (not nearly as large as Dreamweaver), however I suppose that’s a sacrifice you must make if you want all the tools built into the software. If you’re looking for an extremely fast, lightweight application, I would highly recommend Notepad++.

I think it’s a pretty safe to assumption to say there is no software out there that is perfect. Mainly because “perfect” is a personal opinion on how things should work. That is a struggle every programmer deals with trying to make software pleasing to every single user that uses it, it’s dang near impossible. But for all the amazing features I get with phpDesigner that I never had with Dreamweaver, I can live with this issues until they’re either addressed or I just get used to them and don’t even notice them anymore :).

I would like to encourage developers using CodeIgniter or any other PHP framework to try this out. They offer a 21 day free trial as well as an extension of that trial if you need more time.

As an added bonus, I’m attaching my color styles for PHP, CSS, HTML, and JS. The javascript one hasn’t changed much from the defaults, except I colored the comments like Dreamweaver (in gray). Let me know if you try out this software, I’d love to hear your feedback!

For those who like a dark background, set your background to rgb(55,55,55), gutter to: rgb(37,37,37), active line to: rgb(37,37,37), and import these, originally from Harris Baird’s blog known as Railscast/idlefingers:

4 Responses

  1. Mitchell McKenna

    Saw your tweet. Hadn’t heard of phpDesigner 7 before, so it was interesting to hear about it. I’m a huge codeigniter fan, my personal site runs on it. I’ve enjoyed using Aptana, Eclipse, and Netbeans – so I’ll have to check out phpDesigner if you’ve chosen phpDesigner over them!
    Thanks.

  2. Latavish

    PHPDesigner is highly recommended. I have been using it for the past couple years and can’t live without it when it comes to programming php.

  3. kevin

    Try NetBeans for php.

Respond to Latavish Nevermind.