Quite often, I am asked the question “What tools do I need for PHP development?”. Some of the askers expect to spend hundreds of dollars on development tools, others are utterly bemused when trying to select the ‘perfect’ IDE from a long list options. Still others (admittedly less frequently) come to me asking whether they should buy a PC or a Mac to facilitate their PHP development or if they should go with Linux or Windows. I’ve read forum threads where even seemingly seasoned PHP developers go at it over which tools are a ‘must have’ if you want to become a ‘rockstar developer’. For those who will listen, I have one very simple answer to that question: Aside from a server running PHP and a text editor, you need absolutely nothing. That answer may seem extreme but its the truth. Lets break it down.
PHP is a very flexible software package. It runs on just about every major computer architecture and operating system currently on the market. Also, the hardware requirements are very low. I’m pretty sure that if I wanted PHP to run on my BlackBerry I could get it ported over to BlackBerry OS. This makes the choice between Mac and PC or Windows and Linux as it relates to PHP irrelevant. When it comes to IDE’s, the reality is that you don’t really need them. You can write PHP in notepad. For over a year I effectively wrote my PHP code exclusively using Gedit with a few plugins on Ubuntu. After a while I switched to Notepad++ and since then I haven’t looked back. I’ve tried Netbeans, Aptana and Eclipse PDT which are considered by many to be among the leading PHP IDE’s around. None of them tickled my fancy. So, in essence, any server running PHP and possessing a text editor should be enough to write and execute PHP.
Of course, there are tools that make develoment easier. For example I use the Firebug, FirePHP and YSlow Firefox plugins along with phpDocumentor extensively during development. Others rely heavily on frameworks, code profilers and debuggers. Software such as Zend Studio, Xdebug and PHPUnit are staples in the arsenal of many developers. At the end of the day however, all you really need for PHP development is a PHP enabled webserver and a text editor. Tell anyone I said so.



J from Montana, United States on
Stephen Orr from Walsall, United Kingdom
Corve from Saint Andrew, Jamaica
{ 6 trackbacks }
{ 16 comments… read them below or add one }
Hi,
what plugins did you use in gedit ?
Didn’t know there are gedit-plugins for php.
Twitter: @SamuelFolkes
You can find a pretty decent tutorial/list of plugins on the other side of these links:
Gedit For PHP Development
Customizing Gedit as a Web Developer’s IDE
Thx a lot,
I normally use Netbeans, but for the fast editing of files I prefer a fast editor like gedit instead of an IDE.
I traveled nearly the same path, but I started with just plain html and js in notepad. As I have grown to try and use various “cms” frameworks and web apps. With the larger and more oo code I have needed a tool to help keep track of code and for FREE netbeans is the best. I tried Dreamweaver and it was great especially for css editing but in the end Netbeans was better for the PHP code and is better with the various JS packages too. I use WAMP but have used XAMP and I can say that I have coded and run a server from a USB stick from portableapps.com
appreciate your view but to really get more from your code and time use netbeans it reveals PHP and code to you….AWESOME!
I like the idea of keeping things simple. Focus on developing your ideas and leave the shiny toys to others. Good article.
On OS X, there’s no stronger text editor than the venerable BBEdit (The makers do make an essential free text editor called TextWrangler, but BBEdit is better suited for dev work). It includes subversion and CVS support, inline command line controls, code folding and a project list that works well for local filesets. Ther are other good options, but this is gold standard when it comes to simplicity.
I do also occasionally (quickly) edit code in either notepad or wordpad, but when things get real, I stick do IDE’s. I still prefer Eclipse PDT. I’ve become used to it, though that took a long time coming from ZS5. PDT provides me wih most functionality I need to use, like subversion (subclipse), code completion and other ‘nifty’ stuff. But it’s also large and bulky. Luckily my development machine is more than fit for that job. I still want to check NetBeans out, because it is not as bulky. Only thing I already disliked about it (and I feel is its’ greatest downfall)are the integrated version management systems (SVN/CVS) – when a new version arrives, you can’t update but have to wait for a new version of NetBeans.
As webserver I use Zend Server CE for Windows. Easy to configure and manage (not mentioning virtualhosts though). I have used WAMP and XAMP, but they never did it for me, but that’s just me. I can’t speak for someone else.
On topic: I’m not disagreeing with the article. Yes, all you need is a good texteditor and a webserver, but for the real stuff… Maybe the true masters can do without, but overall most developers will still pick an IDE over a simple texteditor. Large projects can hardly do without.
Twitter: @PHIFTY
I have used pretty much every editor and IDE from vi to Zend Studio and I have to say…I prefer Netbeans, mainly because of the code sense and subversion integration. It just makes things easier, especially if you’re on a team. If you’re solo, then any editor is fine.
There’s a very helpful dashboard widget by Sean Coates that acts as a wrapper for an interactive php session. This comes in very handy for those moments when you forgot exactly what some obscure function outputs. Of course, you can open up a terminal window and do the same.
On windows, I highly recommend you get Windows Powershell and use the heck out of it. It has an aliasing feature, so if you’re used to a *ix command line, you can make yourself right at home.
Both WAMP and MAMP are great products and are easy to manage as well.
But if you’re serious about your php and you’re writing high-traffic/enterprisish apps, I highly recommend Zend Server. It is well worth the cost.
Anyone who say you only need a text editor is either a genius or a fool.
To develop any kind of complex application here’s what you need:
- an IDE like Eclipse
- a local server for testing e.g. WAMP
- knowledge of some kind of frame work liek ZEND
This will let you do more much faster.
Twitter: @SamuelFolkes
@Sean – Well since I never said you only need a text editor thankfully (by your criteria) it would appear that I am neither
I have been involved in the development of some relatively large applications (bill payment systems etc.) and I have never ever used an IDE and I know absolutely nothing about the Zend Framework or any like framework. I can guarantee that you will find MANY other developers out there that will tell you the same thing.
Twitter: @sitelabbers
I’ve used nearly every tool available for development on the LAMP stack, and I have finally come full circle.
The first thing to acknowledge is that your operating system is your enviornment, from there you can decide what you need vs what may have the most hype.
I choose to work on a mac osx over windows. What good is working in Windows if you want to work on the LAMP stack? The simple answer is none, the windows OS provides no native functionality you would find on servers running your software, so why develop on something that does not support you?
So my enviornment is this:
Manage files using Finder (native file browser).
Edit files using BBEdit (can use free text-wrangler if working on the cheap).
Manage server using native shell.
Local development server used is Mamp Pro, Xampp is a solid solution too.
Differences here is that Mamp makes creating virtual hosts much more simple, switching between PHP4 and PHP5 is a click away and it comes with APC support. Xampp is a solid alternative I’ve been using as well ( though never installed on the same machine ).
I access my database using Navicat, CocoaMysql was a great free solution but the original authors have abondond the project; but google hosts a branched version called SqlPro which is still better then most options.
These are what I consider essential tools for LAMP development, so keep your fingers on the keyboard and get some work done.
Twitter: @houghtelin
I completely agree with you when it comes to a complete newb asking me “What tools do I need to code PHP.” because they are really just asking what they need to get started coding PHP. In all reality if you’re trying to learn PHP then all you need is a text editor and and an environment to run the code you create. This is where I come to disagree with this post because it doesn’t focus on the newbie coder. Admittedly I occasionally SSH in to a server (PHP environment) and fix a problem using VI (text editor) from my cell phone but in all reality a simple environment and plain text editor will not cut it if you wish to truly be an effective PHP developer little own a team developer. Although seasoned developers won’t ask you that question since they know they need more then a simple text editor and an environment but I believe this post would be better focused if you clearly pointed out that it was for new PHP developers.
Twitter: @PHIFTY
@devhead
have to agree wholeheartedly with Navicat. It’s Data and structure transfer and backup utility makes it well worth the cost
Twitter: @queryistanbul
I am using Delphi For PHP. Most powerfull tool
Twitter: @prasnation
While you don’t *need* any complex IDEs to develop in PHP, they will definitely help you become a rockstar developer. And no, just using them won’t help you become a rockstar developer. The classic analogy I like to give is that of a painter. A painter does not *need* a $150 airbrush, he can definitely paint a house with a normal paintbrush. However, using that $150 is an investment he makes in becoming a better, faster, more efficient tradesman.
One of the reasons rockstar developers usually use a more ’sophisticated’ tool (vi, emacs, Eclipse, Zend Studio, etc.) are less due to the features but because they have taken the time to get familiar with their tool of choice. That ultimately is the key.
That being said, IDEs often help developers become more efficient with mundane tasks like source code management, and complex tasks like refactoring (good luck with doing that well in Notepad++). But it all depends on the project and level of expertise. No sense in using a $150 airbrush to paint a door.
Twitter: @niyyie
I can’t help agreeing with you but software like Adobe Dreamweaver also make web development easier and faster especially for newbies as much of the advanced coding is done by Dreamweaver while the developer only clicks, drags and drops.
NB. Your great geolocation plugin brought me here. Keep up the good work.