5 tools every PHP programmer should know about
Lists, Web Development August 15th, 2007 - 78,578 views
After working on several large scale PHP projects, and writing a lot of PHP code, I’ve discovered a number of tools that improve code quality, streamline rollouts, and generally make life as a PHP developer a whole lot easier. Many of these tools probably deserve a post of their own. But, since some people aren’t even aware that these tools exist, I figured I’d start there. So, without further ado, here’s my list of tools that every PHP programmer should know about.
Phing - a project build system
Phing is a project build system based on Apache ANT. The name is a recursive acronym, of sorts, that stands for PHing Is Not GNU make. Phing can do anything a traditional build system like GNU make can do, but without the steep learning curve.
The idea behind phing (and other build tools) is to evaluate a set of dependencies, then execute a set of PHP classes to properly install and configure an application. The build process is controlled by a simple XML configuration file. Out of the box, phing can perform token replacement (e.g., to change include paths on your development and production systems), execute SQL, move and copy files, run shell scripts, and more. You can also create your own custom tasks by extending the “task” class included with the package.
Phing is an invaluable tool for anyone who needs to deploy large scale PHP applications on more than a single server. But I’ve found it useful for simple scripts, too.
Xdebug - debugger and profiler tool
Xdebug is a PHP extension that helps you debug and profile scripts. Among the most useful features of Xdebug are the new notice, warning, and error messages that are displayed after activation. If a script fails to execute properly, Xdebug will print a full stack trace in the error message, along with function names, parameter values, source files, and line numbers. A welcome feature for developers who are tired of the skimpy error reports from a default PHP install.
The extension has a number of more advanced features that allow developers to perform code coverage analysis, collect profiling information, and debug scripts interactively. The profiling functionality is particularly useful. The profiler uses a common output file format, allowing you to use tools like KCacheGrind to quickly find bottlenecks in your code. A good profiler is an essential tool for any serious developer, as it allows you to properly optimize your code while avoiding the hazards of premature optimization.
PHPUnit - unit testing framework
PHPUnit is a lightweight testing framework for PHP. It’s a complete port of JUnit 3.8.1 for PHP5, and is a member of the xUnit family of testing frameworks (which are based on a design by software patterns pioneer Kent Beck).
Unit tests form the foundation of several modern agile development methodologies, making PHPUnit a vital tool for many large scale PHP projects. The tool can also be used to generate code coverage reports using the Xdebug extension discussed earlier, and integrates with phing to automate testing.
Propel - object-relational mapping framework
Propel is an Object-Relational Mapping (ORM) framework for PHP5 that was originally based on the Apache Torque project. It provides a sophisticated, but easy to use database abstraction layer that allows you to work with database entities the same way you work with normal classes and objects in PHP. Propel allows you to define your database in a simple XML format which it uses to construct the database, and generate static classes for use in your application.
Propel is integrated into the popular Symfony PHP framework (among others), which has helped keep the code base flexible, modular, and portable. The project has excellent documentation, and a great support community.
phpMyAdmin / phpPgAdmin - web-based database administration
An oldy but a goody, phpMyAdmin is one of the most useful administrative tools available for any database (along with it’s PostgreSQL and SQLite cousins phpPgAdmin and phpSQLiteAdmin) . It’s useful for everything from constructing and altering databases to debugging applications and making backups. This is often the first thing I install after Apache, PHP and MySQL on a LAMP server. If you use MySQL, and somehow you haven’t heard of it, install it now.
Other Stuff
There are tons of excellent tools that fill all sorts of niches, and help provide a rich environment for PHP developers — I wish I could mention them all. A few more that I’ve found useful myself are PHP Beautifier, Spyc, Creole, and Smarty. I’m sure there are tons more that I either forgot, or have never heard of. So if you know of a great PHP development tool that I left out, please post a comment and let me (and everyone else) know about it!

August 16th, 2007 at 1:02 am
Great list Mike. I had a web app a while back that I was intent on building out (lost interest now) and took a look at Cake/Symfony but I had no idea how to start using it from my mess of non-MVC/non-OO/non-KISS/non-DRY code. ;-) Although I am slightly familiar with xUnit (well sUnit in particular from testing SmallTalk code). Xdebug has caught my attn though..
Oliver Kohl Says:August 16th, 2007 at 4:20 am
Hey Mike,
nice list of dev tools I have to look into. I had just started to do some PHP development for a WP plugin and while I was looking for some fine tools I stumbled upon FirePHP (http://www.firephp.org/), an extension to Firebug to support PHP. Don’t know if you are aware of it. I didn’t had the time to look into it yet, but because it’s Firebug related it can’t be that bad, right;)
Cheers,
Mike Howarth: Web Developer» Blog Archive » PHP Developer Essentials Says:Oliver
August 16th, 2007 at 6:52 am
[...] Came across this nice little round up of essential developer tools: http://immike.net/blog/2007/08/15/5-tools-every-php-programmer-should-know-about/ [...]
Rich Zygler Says:August 16th, 2007 at 8:41 am
You had me until you mentioned phpMyAdmin. If you saw how many attempts at hacking into phpMyAdmin are listed in my web logs, you’d think twice about using it. And I don’t even have it on my system. Better to use one of the mysql gui tools tunneled thru ssh.
Simon Says:August 16th, 2007 at 9:51 am
Good set of things to look into, some I hadn’t noticed before. You should also checkout the sapphire framework.. its a php class based framework for creating web applications too… and it comes with a built in CMS.
mike Says:August 16th, 2007 at 11:35 am
@Rich - There are plenty of attempted hacks on my server too. Not just on phpMyAdmin, either. People try to exploit WordPress, bind, Apache, SSH, and every other service that has ever had a remote vulnerability. I’m not concerned unless a vulnerability exists for the particular version of the software I’m running (or if the software has a really bad history). It’s true that there have been security problems with previous versions of phpMyAdmin, but not that many, and the current version is secure. It’s a pretty stable and very popular open source project. Given enough eyeballs, all bugs are shallow :)
Ron Says:August 16th, 2007 at 1:54 pm
Thanks for the list, have been working with a big Ruby project, and was dusting up quite a bit of perl… moving to PHP as I go…. Am really going to take close look at XDebug.. thanks
coditza Says:August 16th, 2007 at 2:46 pm
I would add Creole, for db stuff, but as you already noticed propel, probably you know about creole too.
And CodeIgniter, as a MVC framework. Simple and clean.
Probably the Firefox plugin, webdev, should be added to the list too. The form autocomplete thingum is very useful when you have a big form.
Tele Says:August 16th, 2007 at 2:52 pm
PHPMyAdmin is a stable, how any php programmer wouldn’t know about it is a story in itself.
shittylist Says:August 16th, 2007 at 3:03 pm
Shitty list. Your forgetting notepad.
mybeNi websecurity Says:August 16th, 2007 at 3:19 pm
I knew these tools before :p
Jose Lopez Says:August 16th, 2007 at 3:23 pm
Hello Mike, excellent article!
We developers at thembid.com use the symfony framework. [ http://www.symfony-project.com ] Check it out, as it integrates a few of the tools you mentioned here in this article.
-Jose
jbrock Says:August 16th, 2007 at 3:30 pm
I personally like to use GEDIT when using Linux and Dreamweaver on Windows.
http://www.astawerks.net
Orlin Dimitrov Says:http://www.xtremedirectory.com
August 16th, 2007 at 3:43 pm
Hi, I am a PHP developer for several years now and I’d like to share several software products that help a lot. Note that some of them are free to use.
Editors/IDEs: Zend Studio (maybe the best PHP IDE), EditPlus (has free version, very light text editor)
DB Client: SQLyog (has excellent free version)
FTP Client: winscp (free open source project, lots of features, stable client)
Color Picker: Absolute Color Picker (has excellent free version)
Picture Viewer: FastStone Image Viewer (has excellent free version)
File Comparison Tool: WinMerge (very useful indeed)
SVN Client: RapidSVN (light open source SVN client, if you need one)
Greetings..
5 Must Have Tools for PHP Developers Says:August 16th, 2007 at 4:02 pm
[...] http://immike.net/blog/2007/08/15/5-tools-every-php-programmer-should-know-about/ [...]
5 tools every PHP programmer should know! « The life is experiments which you’ve made and been affected ! Says:August 16th, 2007 at 5:02 pm
[...] read more | digg story No Comments Leave a Commenttrackback addressThere was an error with your comment, please try again. name (required)email (will not be published) (required)url [...]
Keath Says:August 16th, 2007 at 5:09 pm
Also take a look at:
* Zend Framework (if you’re starting a project from scratch)
Tech Blog Says:* Eclipse PHP, a free, open source PHP IDE - new plugins support integrated debugging with XDebug
* Instead of phpMyAdmin, I personally recommend downloading the MySQL GUI admin tools from mysql.com. They run on Windows/Linux/Mac and offer a much more sophisticated interface for managing your databases than phpMyAdmin
* phpDoc
August 16th, 2007 at 5:34 pm
[...] 5 tools every PHP programmer should know! [...]
Universe_JDJ’s Blog » 5 tools every PHP programmer should know! Says:August 16th, 2007 at 5:38 pm
[...] read more | digg story [...]
riverfr0zen Says:August 16th, 2007 at 6:47 pm
things like:
phpa
http://david.acz.org/phpa/
and php shell
http://jan.kneschke.de/projects/php-shell/
are cool python/IDLE like tools for just testing out little things in the middle of development.
rich Says:August 16th, 2007 at 7:07 pm
what about frameworks
Tom K. Says:August 16th, 2007 at 7:35 pm
I thought the list was pretty good except for phpMyAdmin. I just don’t understand why so many people love this product. I have to agree with someone else who said that the MySQL Query Browser and Administrator are far better if you aren’t brave enough for the CLI.
links for 2007-08-17 | giancarlo.dimassa.net Says:August 16th, 2007 at 7:55 pm
[...] 5 tools every PHP programmer should know about - I’m Mike (tags: php tools programming development framework web webdev testing article articles blog blogs comments debugging collection coding) [...]
All in a days work… Says:August 16th, 2007 at 8:35 pm
[...] 5 tools every PHP programmer should know about Phing - a project build system, Xdebug - debugger and profiler tool, PHPUnit - unit testing framework, Propel - object-relational mapping framework, phpMyAdmin / phpPgAdmin - web-based database admin, some more: PHP Beautifier, Spyc, Creole, and Smarty. (tags: PHP) [...]
eKini Blog » Blog Archive » Five Tool for PHP Developers Says:August 16th, 2007 at 10:49 pm
[...] Complete article is found here. [...]
Smith Data Processing Services » Blog Archive » links for 2007-08-17 Says:August 17th, 2007 at 12:20 am
[...] 5 tools every PHP programmer should know about - I’m Mike (tags: php development tools) [...]
Almost, Not Yet - links for 2007-08-17 Says:August 17th, 2007 at 12:26 am
[...] 5 tools every PHP programmer should know! After working on several large scale PHP projects, and writing a lot of PHP code, I’ve discovered a number of tools that improve code quality, streamline rollouts, and generally make life as a PHP developer a whole lot easier. (tags: digg Programming Technology) [...]
AntonShevchuk Says:August 17th, 2007 at 12:32 am
Every developer should know PHP Coding Standarts!
links for 2007-08-17 at James A. Arconati Says:August 17th, 2007 at 1:22 am
[...] 5 tools every PHP programmer should know about - I’m Mike After working on several large scale PHP projects, and writing a lot of PHP code, I’ve discovered a number of tools that improve code quality, streamline rollouts, and generally make life as a PHP developer a whole lot easier. Many of these tools probab (tags: tips blogs reference articles web-developer web-developer/tools web-developer/php) [...]
5 tools every PHP programmer should know! « my weblog Says:August 17th, 2007 at 1:29 am
[...] read more | digg story [...]
Jim Davis Says:August 17th, 2007 at 5:14 am
Nice list thanks heaps!!!
Steve Says:August 17th, 2007 at 7:05 am
Good list of stuff. At the previous company we used the zend platform + studio + subversion. Zend platform is just stupidly powerful but annoyingly not free.
Thanks for the list of free ones
ResourceBlog » Blog Archive » 5 tools every PHP programmer should know! Says:August 17th, 2007 at 8:25 am
[...] read more | digg story 0 Comments posted on “5 tools every PHP programmer should know!” Post a comment [...]
Nicole Says:August 17th, 2007 at 10:18 am
great article Mike. I work with http://www.artyllect.com and i’ve circulated this article to all my developers and some of them even got a print of it and pin it in their cubicle. Thanks again
Matt Says:August 17th, 2007 at 11:26 am
Great list. PHPMyAdmin rocks, and yes you just have to make sure you have the latest secure build and you are all set.
For development I have also been using ActiveState’s Komodo. The intellisense for not only PHP functions/methods for the coding, but also instantly picks it up for variables already present on the page (helps the case sensitive typos), and user-defined methods. There might be others just as good if not better, but I love it.
ellisgl Says:August 17th, 2007 at 3:56 pm
1.) Phing - After reading over it - I don’t see why I need to know that.
2.) X-Debug - now if I could get it working on w/ WAMP on Vista…..
3.) PHP Unit - I think I’ll stick to the old fashion way of testing. Test every time I get to a mile stone.
4.)Propel - never heard of it.. Looked at the site - and if it’s anything like their “framework” I think I’ll stay away. Hint: Make a real tutorial - and make the site not feel like an RFC..
5.) PHPMyAdmin - This has been around for a long time. I haven’t used it in a long time - I only use it if that’s the only way to modify a database. I use SQLyog Community Edition 99.9% of the time.
The extras:
PHP Beautifier: I had to go back and hand parse it to my liking back in the day.
Spyc: The need a dash between Spy and C… How many people actually use YAML anyways - are they any advantages to use it in PHP?
Creole: Another abstraction class - great.. Even better it’s based on a Java system….
Smarty: Great Idea, grew up to quick with too many cooks in the kitchen. The docs are OK, but did it need it’s own language? It’s usually horribly implemented in a product. X-Cart has system to tell you what is in what file with some hover notice - which helps a lot! No more directory diving..
I would use DreamWeaver for my development - since it has code hints and a good wysiwyg display - but it’s not free - so notepad++ works for me at the moment. I want code hints.. =)
links for 2007-08-17 « napyfab:blog Says:August 17th, 2007 at 6:25 pm
[...] 5 tools every PHP programmer should know about - I’m Mike (tags: php tool programming development framework web testing) [...]
新闻简评:Skype出现严é‡é—®é¢˜ 被迫暂åœä¸‹è½½ [8/18] - 花儿开了 Says:August 17th, 2007 at 11:37 pm
[...] 5 tools every PHP programmer should know about - I’m Mike 5 款ä¸èƒ½é”™è¿‡çš„ PHP å¼€å‘辅助工具。我个人觉得 Xdebug éžå¸¸å®žç”¨ã€‚ TAGs: php tools [...]
links for 2007-08-19 : übercansino Says:August 18th, 2007 at 9:22 pm
[...] 5 tools every PHP programmer should know about - I’m Mike XDebug, Phing, PHPUnit, Propel y PHP/My/PG/SQLITE/Admin (tags: framework herramientas tools php programming reference software free coding cool toread useful webdev work) [...]
Batman Says:August 21st, 2007 at 5:29 am
I want to add SciTE source code editor in the list. It’s just one great tool. http://seoroot.com/blog/computing/programming/scite-source-code-editor/
gary Says:August 22nd, 2007 at 1:49 pm
The best MVC PHP Framework is PHPonTrax.
Funny Emails Says:Check it out here:
http://www.phpontrax.com
August 27th, 2007 at 9:33 pm
# gary Says:
August 22nd, 2007 at 1:49 pm
The best MVC PHP Framework is PHPonTrax.
Check it out here:
http://www.phpontrax.com
thank you for this site address really appreciated it
Daneeeh Says:August 28th, 2007 at 9:29 am
phpMyAdmin is an oldie but goodie :P
Anderson Says:seems I have some testing to do
thanks !
August 28th, 2007 at 11:38 am
Some links :
Prado (It’s my favorite)
http://www.pradosoft.com
Claw Framework (Easy and simple to use)
http://www.clawphp.org/
CakePHP (Many people says it’s the better, I’ve been tested, and I’ll to continue with Prado)
http://cakephp.org/
Code Igniter (Very powerfull and so hard to learn and to use)
http://www.codeigniter.com/
Symfony (Very powerfull and so hard to learn and to use)
http://www.symfony-project.com/
Zend Framework (hmm.. It’s..)
http://framework.zend.com/
adoDB (no words)
http://adodb.sourceforge.net/
Smarty Template Engine (If you are beginning then experience it)
http://smarty.php.net
Solar (I don’t like it very much..)
http://solarphp.com/
WACT (Very good template engine)
EllisGL Says:http://www.phpwact.org/
August 28th, 2007 at 7:24 pm
“Code Igniter (Very powerfull and so hard to learn and to use”
If they wouldn’t use video tutorials it would be a lot easier to learn. They have the user guide:
http://codeigniter.com/user_guide/
But if you are like me - you want something you don’t have to click all over to read (something you can print out)… Of course I have a solution: http://www.eidolongroup.com/_WikiFiles/codeigniter.html
I’m finding more and more the only frame work I will deal with.
Oh http://www.clawphp.org/ is not up.
As for templating - I love how you can template in ModX (http://www.modxcms.com/)
Tom Says:August 28th, 2007 at 8:56 pm
With regard to #4, I’ve found Doctrine to be a much better alternative to Propel.
PHP MySql Programmer / Developer Says:August 28th, 2007 at 11:24 pm
I agree with using PhpMyAdmin - great tool. I would not use smarty. Frameworks are fine and all however they have a learning curve and require you do things their way. Learn from them and build your own library.
tech.twomadgeeks.com » 5 Tools Every PHP Programmer Should Know About Says:August 31st, 2007 at 4:30 pm
[...] Link: I’m Mike [...]
Danny Says:September 4th, 2007 at 12:49 am
i agree.. MODx rocks as a cms/framework! :)
Essential PHP Resources | Website Design Blog Says:September 5th, 2007 at 8:52 am
[...] 5 Tools Every PHP Programmer Should Know About is a handy list of various tools designed to improve and optimise your PHP coding, from Xdebug to Propel. [...]
drF Says:September 5th, 2007 at 1:17 pm
You are just listing the apps you’ll normally find in symfony! Propel? Come on!
rollenc Says:September 10th, 2007 at 12:36 am
I like Simpletest
å°å®å½“ » Blog Archive » 所有PHP程åºå‘˜éƒ½åº”该知é“的五个工具 Says:September 10th, 2007 at 5:49 am
[...] 原文作者:Mike Malone原文链接:5 tools every PHP programmer should know about译者:åéžé±¼ [...]
Andy Bailey Says:September 11th, 2007 at 3:58 pm
I dabble in php so I can get things done on my site, I use Zend Studio to code in and it’s ace, I really like the debug option and watch what happens to variables through each step of a loop.
5 herramientas PHP que deberÃas conocer « Resistance is futile Says:September 12th, 2007 at 1:55 am
[...] Fuente: 5 tools every PHP programmer should know about [...]
48 links PHP (perché 50 “fa brutto”) | Napolux.com Says:September 25th, 2007 at 5:13 am
[...] 5 tools every PHP programmer should know about [...]
Links for 11 September 2007 - 27 September 2007 :: Col’s Tech Stuff Says:September 27th, 2007 at 7:48 pm
[...] 5 tools every PHP programmer should know about - Some very interesting tools here. Can’t say I’d have a use for all of them, but certainly a few. [...]
Cj B Says:September 28th, 2007 at 3:00 pm
Wow. I’m going to have to start using some of those!
5 tools every PHP programmer should know! « Programming News Says:October 9th, 2007 at 9:14 am
[...] read more | digg story [...]
Tired Robot » Blog Archive » Tools for PHP development. Says:October 9th, 2007 at 12:41 pm
[...] Tools every PHP Programmer Should Know About Cris Comment RSS « Microsoft & Zend Collaboration Announcements [...]
Jamie Says:November 15th, 2007 at 2:52 pm
CakePHP, a Model, View, Controller web application Framework.
Does for PHP what Rails does for Ruby.
Daniel Oliveira Says:I’ve been working with it for a while now and I couldn’t imagine going back to before….
November 15th, 2007 at 9:56 pm
this will come handy!!
grettingz from brazil again =D
cya
Karen Says:November 18th, 2007 at 4:37 pm
Hi Mike–
I need a reliable PHO pro who can complete my webstie.
The project is almost finished, but, my programmer is unreliable at best. I have a Word doc with a list of fixes, small & large to complete this project. I have several tasks that need to be done after this. Please let me know if you can recommend someone. I am a graphic & web designer & lack the skill needed to take this on. Who can you recommend that truly is reliable & has skills.
Thanks — Karen
Hieu Says:January 1st, 2008 at 7:52 pm
Very cool, very helpful.
Thank you - Hieu
Mani Says:February 29th, 2008 at 2:15 am
This is the best List for any PHP programmer.
Hire PHP developer programmer Says:I have told this page to keep it as a bookmark to all my employees.
March 9th, 2008 at 8:43 am
Good set of things to look into. These tools are designed to improve and optimise your PHP coding, from Xdebug to Propel.
nppfan Says:March 10th, 2008 at 3:02 pm
(Disclaimer: not affiliated except as a happy user)
- Notepad++ with all of its plugins. mighty awesome.
ajcates Says:- QCodo has a neat way of explaining things and the code is _very_ readable. A perfect balance between SomeKindOfJavaPatternImplemetationHndler on one extreme, and $fw->next() on the other. See some of the source to get what I mean.
- PHPEclipse/Aptana/PDT are a bit of a bloat but _very_ good.
- WAMP for Windows users is **extremely** configurable
Allows switching about 4 apache versions and 9-12 PHP versions from a single control panel, plus unlimited aliases. Very impressive.
April 18th, 2008 at 3:28 am
@nppfan
EllisGL Says:I couldn’t live with out phpMyAdmin or notepad++.
April 21st, 2008 at 6:52 pm
@Danny:
Paul Drewett Says:MODx is a great CMS. I wouldn’t really call it a full fledged framework thou. I use MODx and a modified version of Etomite.
May 4th, 2008 at 4:44 pm
MODx is a fork of the fabulous ‘Etomite’. I have tried MODx and it is pretty good too of course, but at its core it is Etomite. Etomite have just released v1.0 and it is fab! I am just about to try code igniter but am wondering how it will integrate with Etomite (as I use Etomite for all the visitor and user permissions, log ins etc).
Phpmyadmin is fantastic IMHO.
Paul