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.

Php Autocomplete

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.

PhpED phpDoc description

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.

Read More / Comment

Donat Studios Officially Launches

After much ado, Donat Studios is finally live! There are a few things left to complete. Eventually setting up the documentation and public git repository for CorpusPHP will certainly take up a fair amount of time. I'm still not quite sure what to put in my portfolio, I was thinking of for the time …
Read More / Comment

The Sad Truth About and Reasoning Behind JSONP

I don’t want anyone take this the wrong way.  I am having a torrid affair with JSON. It is so much simpler to parse than XML, and is an all around exceptional way to represent data. I have one caveat though, and that is “JSON with Padding” or “JSONP” as it goes by.…
Read More / Comment

Twitter @donatJ

Radio that expels dust every 6 months, really interesting.
February 8, 2010, 9:00 am – Link

Going to try to spend the entire day on shuffle... Seems so unnatural, I almost always listen to full albums.
February 8, 2010, 8:50 am – Link

RT : IT'S A WONDERFUL RESTAURANT!
February 7, 2010, 1:58 pm – Link

Little restaurants have the best coffee :-) #dapts +100
February 7, 2010, 1:56 pm – Link

MC Frontalot... New Album... Mike Doughty... :-)
February 6, 2010, 3:58 pm – Link

RT : Birthday wishes are in order for the late POTUS Ronald Wilson Reagan. I wish I were old enough to have cast my vote for him.
February 6, 2010, 3:56 pm – Link

Last.fm donatJ

Lambchop - I Hope You're Sitting Down
Lambchop - How I Quit Smoking
Buck 65 - Situation

Brother Ali - Us
The Mountain Goats - All Hail West Texas
Clem Snide - Your Favorite Music

Lambchop - Is a Woman
Buddy Wakefield - A Stretch of Presence
Lambchop - Nixon

Flickr donatJ

080
P7040094
P7040093
P7040092
P7040091
P7040090
P7040089
P7040088
P7040087