There Isn't an App for… - Part 1: PhpED

“There Isn't an App For That” - Windows Apps I haven't been able to replace in Mac OS X

For a very long time I was a Windows guy, I was once a DOS guy. I switched nearly exclusively to Mac for my home use about 4 years ago. I’ve been very happy with it. Its stable, well engineered, and - my favorite part of all - consistent. Yet, in this time there remain a few applications I cannot seem to replace.

Nusphere PhpED

I am a PHP Developer by trade, and PhpED for my money is by far the best development environment for the serious PHP developer. When I do develop on the Mac platform it is usually split between two applications – Coda and TextMate. They are fantastic text editors, don’t misunderstand, but when you are developing highly classed applications a strong IDE becomes highly desirable. PhpED’s IntelliSense style PHP auto completion is on par with and in some ways surpasses Visual Studios.

Applications like Dreamweaver, Coda, TextMate and Espresso by comparison provide very basic auto completion. Zend Studio, Aptana Studio and other Eclipse based solutions have varying qualities of auto completion, but are awkward due to Eclipses generality and slow and visually out of water due to being built on Java. Komodo comes the closest, but can be very slow at times. Weighing in at $299 its pricetag is also heavy.

To give you in an example, in my CorpusPHP Framework the user class is built specifically to be extended for the sites particular needs. The login class therefore has a member instance of whatever type of object extending user you might have. This member is dynamically set as an instance and therefore type cannot be determined by most editors and auto completion will not work. PhpED on the other hand has a solution. This brings me to my favorite PhpED feature - deep phpDocumentor integration.

class Login {

/**
* Object that holds the user object, brought over from the session
* @var User
*/
public $user;

… … …

}

The above code snippet shows the user member of the login class. It can be any type of user, for instance admin or limited. It will though be inherently be something that extends the user object. Using phpDocumentor syntax here we imply that the type is a user and since PhpED is smart, it auto completes based on this. If you are unfamiliar with phpDocumentor syntax you should read up on it, and begin marking your PHP up in this standardized syntax.

PhpED takes this integration further and will show descriptions of methods and functions as well as their parameters and return values based on their inline phpDocumentor documentation.

While auto complete is the PhpED killer feature in my book, it has many other excellent features.

Its internal debugger is second to none, and requires no setup unlike other debuggers. It installs its own copies of Apache and PHP 4 & PHP 5.2 or 5.3 which it uses to debug. The debugger can output to an internal version of IE or Mozilla or any external browser. Its quite configurable, everything you would expect like ability to set $_GET, $_POST, etc variables, break points, runtime analysis.

Some smaller features I personally enjoy are for instance:

To-Do list shows you all the todo’s throughout your project.

Continually improving, high quality CSS/HTML auto completion.

The ability to set a default character set on a per-project basis

Non-Ascii range characters show up dark blue in variable and function names, making them obvious – which is particularly helpful when working on code from a Cyrillic coder whereas Α (Alpha) and A are visually identical but entirely different characters.

Great support – Support will work with you to fix a problem.

Update 7/7/2011

The dark PhpED Theme I use is now available here for PhpED 5 and 6.