Want to get Lullabot article, videocast, and podcast announcements delivered right to your in-box?
Let us know your email address (we won't share it) and we'll let you know when anything exciting happens.
Drupal Podcast No. 31: Drupal Development Tools
- Artist: Lullabot
- Title: Drupal Podcast No. 31: Drupal Development Tools
- Album: Drupal Podcast
- Track: 31
- Year: 2007
- Length: 82:55 minutes (19.68 MB)
- Format: Mono 22kHz 33Kbps (VBR)
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
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.
Hey, I love vim. :P
I even said so, at least twice, unless that got edited out due to the whole blasphemy thing. ;)
Komodo 3.5 or 4 IDE?
I experienced a lot of funkiness with 3.5. This is gone in 4.
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.
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
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.
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
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.
bash vim and ssh put food in
bash vim and ssh put food in the fridge and pay my rent :P
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
Konstantine Haeffers link does not work
In the podcast, k.kaeffer.com does not go anywhere. Was this the correct link?
Thanks.
Rich
http://kkaefer.com/
http://kkaefer.com/
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?
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.
Xyle Scope for Mac based CSS
When working on a theme or tearing apart another one, a great tool for Mac developers is Xyle Scope http://culturedcode.com/xyle/ .
Yes
I've tried this and liked it very much.
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. ;)
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.
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"
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.
jEdit is free
Check out jedit.org. jEdit works on any operating system and has plugins for syntax checking, CVS management, and diffs.
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.
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.
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
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/
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
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
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
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.
quickpicker
Didn't see this one in the links
The simple color picker.
quickpicker
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!
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.
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.dllzend_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
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.
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...
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
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?
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
Texmate replacement on Windows
InType
http://intype.info
Is in alpha. The cost will be between $25 and $45.
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.
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.
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
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.
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!
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
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:
So there! :(
(OK, I'm still using Eclipse.)
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.
PHP Designer
would like to know what you all think about php designer
http://www.mpsoftware.dk/phpdesigner.php
and html kit
http://www.htmlkit.com/
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/
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.
Ultraedit and XCode
Have you guys figured out how to integrate XCode into Ultraedit?
Post new comment