Posted on February 3, 2007 // Short URL

Drupal Development Tools

Jeff Robbins, Ted Serbinski, Angie Byron, Jeff Eaton, and Robert Douglass talk tools of the trade: what code editors, front-end design tools, and IDEs are we using for Drupal development? Comment here to make your suggestions, too!

Links

  • Drupal 5.1: http://drupal.org/drupal-5.1
  • Lullabot training: http://www.lullabot.com/training
  • Measure-It extension: http://www.kevinfreitas.net/extensions/measureit/
  • Web developer toolbar: http://chrispederick.com/work/webdeveloper/
  • Firebug: http://getfirebug.com/
  • Vim: http://www.vim.org/
  • TextMate: http://macromates.com/
  • TextWrangler: http://www.barebones.com/products/textwrangler/
  • UltraEdit: http://www.ultraedit.com/
  • Zend Studio: http://www.zend.com/products/zend_studio
  • Eclipse: http://www.eclipse.org
  • PHP Eclipse: http://phpeclipse.de
  • PDT: http://www.eclipse.org/php/
  • Komodo: http://www.activestate.com/products/komodo_ide/
  • Xdebug: http://xdebug.org/
  • MAMP: http://www.mamp.info/en/index.php
  • XAMPP: http://apachefriends.org/

Comments

2bits -- Khalid

Komodo, xdebug and vim

Didn't hear vim covered in the podcast, since you guys are Macheads :-)

Here is the view from the Linux command line side of things:

First, we have a guide for how to setup xdebug for PHP on Debian/Ubuntu

Once you have that up and running, then here is how to get vim and xdebug DBGp for debugging Drupal, with screen shots. This is cross platform, so should work with Mac or Linux or what have you. Useful for the command line heads like me.

There is also a page on Resources and links on debugging, tracing and profiling Drupal.

I like Komodo very much (it is Canadian eh?), but for our specific case, we have two people and want to keep everything on the server while developing, so remote debugging in multi-user Linux client setup is a must. We could not get it to work. The xdebug proxy itself works fine, but something about the URI mapping is not working.

Reply

2bits -- Khalid

Yup, me too ...

I tried the 4.0 betas, as well as the 4.0 release.

All works well, except for remote debugging.

Debugging locally on your laptop should be fine. It is when you need true remote debugging that things are not right.

It will start debugging in index.php, but would not recognize breakpoints, because the way xdebug works it sends the whole file from the server to the client. It is then up to the URI mapping to map a the local file to the remote file so you can set breakpoints, ...etc.

You see a lock icon on the file if it is the remote copy, otherwise you do not see it, meaning URI mapping is OK. Even when I get this right, it will not stop at a random breakpoint.

vim works well for us when we need it.

Reply

Haze

Notepad++

One text editor that I find really works for me, is Notepad++ (hosted at http://notepad-plus.sourceforge.net/uk/site.htm). A great thing about this piece of software is that it's free software licensed under the GPL.

While I should mention this is a Windows-only text editor, it seems to contain everything I need for most development projects.

A little fix to help with Drupal development is to modify the packaged "langs.xml". Where it says:

<Language name="php" ext="php phtml" commentLine="//" commentStart="/*" commentEnd="*/">

Just replace it with:

<Language name="php" ext="php phtml module inc" commentLine="//" commentStart="/*" commentEnd="*/">

Also, associating .module and .inc with Notepad++ is something else I do.

:P

Reply

MikeyLikesIt

drupal coding standards?

nice tip about editing the xml file. Thanks

do you also know how to set up Notepad++ so that it conforms to drupal coding standards (2 spaces instead of tabs, etc...)?

I've been using Notepad++ for a few months and really like it as well for simple edits.

Instead of usin FTP to access my files I use WinSCP which uses an SSH connection but has an FTP like interface and tons of great features. I highly recommend WinSCP (http://winscp.net/eng/index.php) if you have SSH access to your server. It integrates nicely with Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/) for doing command line stuff. Both apps are free.

Reply

Haze

Tab size

Ah sorry, guess I should've mentioned about the coding conventions.

To get the tab size to two spaces, go to Settings -> Preferences, then just copy the settings illustrated here:
http://hazexp.googlepages.com/notepadplusplus.png

If you have any more questions, don't hesitate to ask :P

Reply

diedel

Better not edit

Better not edit langs.xml.

Go to Settings/Styler Configurator, select PHP under Language and add the Drupal extensions under User ext (module theme inc install...)

Regards.

Reply

Rich

Books

Great podcasts... Speaking of tools, can you list some must have books that newbie developers should have on their bookshelf to create new modules.

Thanks.

Rich

Reply

Daniel Nolde

Use Drupal Syntax/Grammar Files in Eclipse?

Thanks for this good looong wrapup of Drupal (and general PHP) Development Tools.

Since i plan to switch from UltraEdit (great, but standalone) to Eclipse IDE, and heard about the great Drupal grammar files (code completion) for Textmate, i wonder if there is a) a way to convert Textmate grammar files to Eclipse and b) the need to do it at all - since, probably Eclipse can step through your code files (including drupal) and generate all this code-completion information by itself??

Any info on that?

Reply

Dominik Lukes

Don't forget PSPad - it's powerful and free

There are literally dozens of notepad replacement editors on Windows. I used to use Notetab (http://www.notetab.com) but it has fallen behind in development so after a brief interlude with Notepad++ which is very lightweight - mostly good for syntax highlighting (http://notepad-plus.sourceforge.net), I switched to PSPad which is does almost everything UltraEdit does on the text editing side for free. Since it is made in the Czech Republic, it has great support for Unicode and multilanguage handling. http://www.pspad.com/en.

Reply

jeff

Yes

I've tried this and liked it very much.

Reply

mattman

TextMate Users should check out the CVS bundle

Because the TextMate developer uses svn, you won't find cvs features as a default bundle with TextMate. However, a quick trip to the TextMate svn repository and you can have CVS that works great within TextMate.
http://macromates.com/svn/Bundles/trunk/Bundles/CVS.tmbundle/

Also, when you guys talked about applying patches within the IDE (or in this case the editor) You can do that within the Diff bundle of TextMate. Look for the "Apply Patch to Files..." option. With a little bit of shell and applescript (plus a macro program like QuicKeys or iKey http://www.scriptsoftware.com/ikey/ ) you can apply a patch as easy as hitting an fkey. ;)

Reply

drawk

JOE

My preference has been to work on the server side through SSH using JOE (Joe's Own Editor). It's one of the first things that I install on servers that I administrate, if it isn't already there.

UltraEdit is starting to look very, very good to me though. I may just change my habits yet.

BTW - "some people" have been filling in the links? C'mon now! ;) But you 'bots did a good job this time working them right into the show notes, I'll give you that.

Thanks for the show. Always a treat.

Reply

themegarden.org

eamcs ?

Joe is fine ...

But nobody had mentioned emacs!
I must admit that I'm surprised.
Yes, it's hard and heavy to learn, but it's really powerfull. And Emacs can be used from command line in textual mode (no xWindows), so it can be really useful on servers.

Other tools: grep, sed, awk ...
"Power of the command line"

Reply

Jason

IE Tab

For us poor folks that still use Windoze to develop website, I like using IE Tab to switch between browsers when creating a theme.

Reply

Darren Oh

jEdit is free

Check out jedit.org. jEdit works on any operating system and has plugins for syntax checking, CVS management, and diffs.

Reply

2bits -- Khalid

Quanta Plus

For those who use KDE on Linux, Quanta Plus is a very capable IDE. It has very good support for PHP, including syntax highlighting, code completion, as well as HTML support, ...etc.

It also supports xdebug's DBGp protocol, including remote debugging support (but without proxy, so no multi user).

The bad thing is that on the latest Kubuntu 6.10, it crashes after finishing the debug session.

Reply

Jake

Quanta is the Jam

I have been using quanta for years. In fact, it allowed me to make the switch to Linux full-time. Before I found it I was using dreamweaver only because dreamweaver offers an excellent project files manager. Allowing me to sync my local testing server files with the production server.

I have tried all of the windows apps that were mentioned in the podcast and they were all OK, but none of them had a good way to manage the project files.

I do not use debugging in quanta myself, but I would like to set it up one of these days. I add debugging code to my projects like you mentioned in the podcast.

It is also worth mentioning that it has cvs and svn support but as I do not use these functions either, I am not sure how robust it is.

Quanta does an an excellent job of code completion, it parses the entire document and anything that was typed in the document is available for completion. You just need to enable this plugin in the plugin options. It also has great project management and supports every protocol supported by the kde kioslaves which is everything you have ever heard of and then some special ones like fish(kde ssh-like protocol).

Love the podcast, keep up the great work.

Reply

Anonymous

Uber VIM

Checkout
http://cream.sourceforge.net/home.html

This is a layer on top of GVIM making the interface more accessable.

This is cross-platform

Reply

Budda

Windows Text Editor

The Crimson Editor has been a great Windows based editor for the past 5 years for me. It's no longer developed but it's pretty solid and does the job for free.
http://www.crimsoneditor.com/

Reply

Bert Wynants

eclipse

Hey, nice podcast

however can you elaborate how the do the debugging in eclipse sometime? Never managed to do it. I think i succeeded installing xdebug (php_info says it's on) but I never managed to let it break on a breakpoint...

Bert

Reply

bert Wynants

Webkit on Mac

I often use webkit (safari) to look at css in safari, see http://webkit.org/blog/?p=41 for an explanation

and source level java debugging (ajax) with http://webkit.org/blog/?p=61

see http://nightly.webkit.org/ to download webkit

Reply

mpare

XCode Any One? Apple's Self Claimed IDE!

I was just curious, have any of you used xCode for an extended period of time as an IDE. Well It's my understanding that it is an idea but may have a few annoyances for php developers. This link may or maynot be helpful for those who are wondering about the answer to this questions, but it is a start.

Also didn't look real close to see if someone has already posted this but here is a helpful article dedicated to Angie Byron (webchick) about Xdebug, remote debugging.

Peace,
-Matthew Pare
www.paretech.com

Reply

Larry Eitel

PhpEd Rocks

I appreciate the podcast. Always interested in better ways to work. I went through the php editor tool search a few years ago and discovered PhpEd at http://www.nusphere.com/. Windows based. Not cheap but easily has earned its weight. My notepad replacement is UltraEdit.

thanks again for your podcasts.

By the way, our site, http://www.noblood.org is not currently Drupal based although we are considering it.

Reply

Eric

Eclipse Tabs

I thought I heard someone mention on the podcast that Eclipse wouldn't use spaces for tabs. This can be setup under (on the mac) Preferences > PHP > Formatter.

Also, please, please elaborate on getting debugging to work with Eclipse!

Reply

jeff

We've found that even

We've found that even setting this preference doesn't cause Eclipse to actually use spaces instead of tabs. Very frustrating.

Reply

Tostinni

Debugging with Eclipse

I had a hard time configuring it, but I finally manage to make it works.
First of all, multiple Java on a single PC is a big mess. Due to several software installation, I had a lot of Java JRE on my PC and it caused me a lot of pain to get Eclipse work correctly.
So I grabed the latest Java5, edit my path variable to let only this one.
Then I mainly followed the tutorial from the folks at IBM: Part 13: PHP development within Eclipse
I used Eclipse PDT 0.7 RC2, there's a PDT all in One available which simplify a lot the process.
Then you have to download the Zend Debugger Extension Binaries be sure to download the latest one (I got errors with the old one :( )
Of course you have a running AMP environnement, for the record, I used Uniform Server which is lightweight and portable to stick it on my MP3 player ;).
Just put the extension in the PHP extension folder, add these lines to php.ini

zend_extension_ts=path_to\ZendDebugger.dll
zend_debugger.allow_hosts=localhost
zend_debugger.expose_remotely=always

Note there's a little error in the IBM tuto regarding the config of Zend so use these one.
Restart your server.

Open Eclipse (after importing your drupal site) and go on with the IBM tuto regarding the debugging. Stick a break point, run the debugger and voila!

Also regarding the tabs, I just try it and it works fine for me, tabs become 2 spaces as Eric said.

Good luck/debugging

Reply

jeff

Exciting!

I'll have to test it out and see if this holds up on the Mac. I seem to remember some problems with Zend on the Mac, but maybe this has been fixed recently (since they now have their IDE working with Intel Macs).

Also re: the tabs, perhaps the problem only occurs when you select a block of text and then hit tab to indent it. This causes the block to become indented using tab characters rather than double-spaces.

Reply

Tostinni

Tab is buggy :(

Yes you're right Jeff, there's a bug regarding the tab indentation for blocks of texts...

Regarding the debugger, well I got my setup working, but I'm not very efficient with it for the moment, and it's also pretty slow...

Reply

mlsamuelson

Programmers Notepad 2

Working for gov't, I usually have to go the long way around to do stuff like making patches, CVS, etc. due to a Windows-only environment. Still, I'd be hard-pressed to find a more lovable text editor for programming than Programmers Notepad 2. It's comparable to UltraEdit in many ways. What it lacks, it probably won't lack for long, if the lead developer's blog is any indication.

And it's very easy to configure for Drupal coding standards (eg. tabs can be set to 2 spaces).

And, um, it's open source (BSD license).

mlsamuelson

Reply

eethann

Jumping to symbols/functions/files

One important feature of an ide for me is the ability to jump to a given symbol definition in a files. Textmate totally rocks in this regard: command-shift-T and you have a list of all the function (and other symbol) definitions in that file, start typing and the list is dynamically filtered till you see what you want. Same thing for filenames in a project: command-T and start typing a filename till you see the one you want and use the arrow keys then enter to select.

I know vim does this too with some extensions, and I'm sure others do it as well...but as far as time savers go it is huge!

Another important feature for me is the ability to automatically look up the documentation for a function...can any of the TM bundles discussed do that using the drupal API?

Reply

joel_guesclin

A very nice editor

Actually, I like this PHP editor very much: http://www.mpsoftware.dk/

There is a free version and it handles most web type files (css, html, etc). Some very useful things:
- hints to give you function parameters
- colour highlighting brackets so you can see where if statements begin and end!
- a list of functions in the file to navigate around quickly around the place.

It's nice

Reply

Geoff

e Text Editor

Rather than InType, I would highly suggest trying e (http://www.e-texteditor.com). E is generally compatible with TextMate bundles, has a bundle editor, has a really cool undo (branched, graphical), tabbed interface, column and multi-area selections, personal RCS.... It's free during the beta period, but will sell for $34.95.

Reply

xian

Free Komodo

Komodo now has a free version!
http://activestate.com/products/komodo_edit/

If you are like me, and like your debugging tools in the browser over the IDE, this is a happy medium.

Reply

sime

sorry, that's misleading

The free version falls more in the way of "text editor".
http://activestate.com/products/komodo_edit/edit_vs_ide.plex

Reply

alldirt

Hateml IDE

Just found Hateml (http://www.migajek.com/?c=p) a freeware Integrated Development Environment for PHP, CSS, XHTML (includes debugging, color coding). Anybody tried this? It is at least someting to look into.

Reply

As If

web dev tool

The Web Developer Tool for Firefox is definitely cool, but believe it or not, the IE version is even cooler. It includes everything the FF version does (in a frame below the page), plus more stuff like a color picker, multiple rulers, window resizing, and blah blah blah!

Reply

bcswebstudio

nusphere phped +1

I, too, am enthusiastic about Nusphere PHPEd. I will have to dig through my notes about why I dismissed Komodo (3.5) and Zend Studio when evaluating IDEs, but PHPEd one hands down. And because it's built atop Windows libraries, it is smokin' fast compared to the other Java-based IDEs.

It, too, supports CVS, although I've not yet had to use it. I just love the code-suggest (typing "l(" will prompt you with all "l" params, b/c the IDE has parsed all included files), and it will even code-complete for variables and functions just having been defined. My fav, however, is its great live debugger.

Other than that, I lean heavily on ScooterSoftware's Beyond Compare-- text, hex, and even image compare (visually!).

cheers all-- thanks for the nice podcast

Reply

sime

annoyances with eclipse

I am setting up a new environment and am very torn about IDE choice. Generally Eclipse is great, but I've had some specific problems with CVS and Eclipse:

  • You can't specify cvs parameters to Eclipse and this means you can't do stuff like have a patch with the function name printed at before the change (I think the command line switch is -NuF^f). Robert notes in the cast that Komodo has "cvs-lite", but in my trial of it, I notice at least you can execute command line from within Komodo and build macros. Pretty cool.
  • At one point, other developers were suddenly unable to apply the patches I'm generating with Eclipse. This was a while back, and I've not checked it again recently. Well, I have no desire to continue posting bad patches and waste people's time, it just reflects badly on me.
  • Lately Eclipse just isn't picking up tags on the E-Commerce module that CVS has not trouble with. I'm not sure if it effects other modules. I've had this reproduced with Eclipse on linux platform and now I'm looking at a Mac. OK, it's probably a bug that will eventually get fixed, but all these examples annoy because they seem to be symptoms of the Eclipses "reinvent-the-wheel" version-control integration.

So there! :(
(OK, I'm still using Eclipse.)

Reply

nate

Agreed, but still using

I'm going to agree with everything Sime said, but point out that I'm still using it anyway (so is he apparently). Eclipse has got a good number of problems. Similar to Drupal, new problems seem to be created everytime the old ones are fixed. Part of the reason I tolerate it is because I know the Eclipse project is VERY much like an installation of Drupal and a bunch of contrib modules.

If I were using Eclipse for Java (the original purpose), nothing else comes close and there are virtually no bugs.

However, I use it for PHP using a 3rd party plugin (phpEclipse), plus 3rd party version control (CVS and SVN). It's no wonder it's got problems.

I maintain and patch modules on a daily basis using Eclipse. Sometimes it gives me trouble, but it's exponentially better than trying to patch from the command line.

I've never had any trouble posting or applying patches with Eclipse. Just make sure you specify you want to patch from the 'selection' (locally) rather than from the 'project root'. In which case they'll need an extra flag to apply.

Reply

Tom Sherlock

phpEclipse on Mac OS X 10.5

Nate, are you running the phpEclipse on Mac OS X?

I have it installed on Ubuntu, Windows and Mac OS X.

I have running fairly well on Ubuntu and Windows. However, on the Mac, after install i got a whole bunch of Java related errors. Not sure if it is related to permissions or something else.

Any suggestions?

Reply

Darren Mak

Thanks for this

Even 6 months later this was a good podcast to listen to, and the comments were great, as I have just switched over to the Mac and needed to start downloading some software... (One of the main reasons was so Angie and Jeff wouldn't bug be about Windows in Barcelona!)

Has anyone tried cssedit? http://macrabbit.com/cssedit/

Reply

robert

CSSEdit is fabulous

It takes even CSS dummies like myself and turns them into CSS Ninjas. Well... nothing is quite that good, but I use it and recommend it.

Reply