views:

1528

answers:

19

I have been developing basic web sites for awhile now with some PHP thrown in for getting dynamic stuff done. However, I recently decided that it was time I got my hands a little dirtier so I wanted to start to play with the underpinnings of Wordpress and other such apps. I work on a Mac at home and have been using Coda for most of my editing needs and I love it. Also, to manage the services stack I use MAMP at home. However, I've begun to realize that for heavy PHP and Web work (AJAX, etc.), more is needed.

I'm very interested to hear the kinds of tools more experienced web developers use on a day to day basis to manage the entire work flow. I found this article over on developer tutorials and decided to go with XAMPP (for the moment) for managing the services. However, IDE, Source Control, Debugger, etc. are all up for grabs.

Anyway, your thoughts are much appreciated. And, if at all possible, try to describe your entire stack with what each tool fulfills for your development process.

+4  A: 

For a source control client, I definitely recommend TortoiseSVN, it integrates with windows very nicely.

Also see this related question on choosing an IDE for PHP development

davr
A: 
Aaron Maenpaa
+1  A: 

It took me a while to find Windows tools that I liked too.

For my editor, I use E which is an imitation of TextMate for Windows. For source control, I use git. It's a little annoying to get set up at first, but I prefer it to all of the other systems. msysGit is an excellent project that will help you get up and running on Windows. For hosting, you can use GitHub.

Justin Poliey
+4  A: 

Use the free Netbeans IDE for PHP. Very good feature set out of the box plus a lot of plugins to extend ur IDE. For embedded source control use svn or Hg. For the server, XAMPP. and make sure you configure your xampp to match the deployment server configuration, to avoid any last minute surprises (learnt the hard way). PHP config is complicated

Midhat
+3  A: 

Aptana does pretty well, and i use a straight Apache install.

David Alpert
+2  A: 

Hands down the best IDE for PHP is NuSphere PHPEd. It's a no contest. It is so good that I use WINE to run it on my Mac. PHPEd has an awesome debugger built into it that can be used with their local webserver (totally automatic) or you can just install the dbg module for XAMPP or any other Apache you want to run. (I personally use WAMP for development for it's easy of adding new sites and modules). Source control is really whatever you can find cheap. Codespaces gives you 50 megs free and Assembla gives you 100. Both offer SVN and Assembla has GIT and Mercurial as well. If you don't know how to manage source control I would recommend starting with SVN (more docs and tutorials) due to TortoiseSVN's integration with the Windows shell. You don't even need to know a single SVN command to use it.

A: 

PHPEdit for me

Lewis
+9  A: 

I'm developing in a WAMP environment (WinXP SP3, if you must know). Here is my toolset and why: IDE - UE Studio (www.ultraedit.com):

  1. I like to type my code manually
  2. There's basic intellisense to help me pass all the right function arguments
  3. It can collapse big functions to get them out of the way
  4. It has decent code highlighting that I can customize
  5. It's not "option overload" like eclipse
  6. It has built-in project management features
  7. It's fast enough to be a notepad replacement
  8. There's this really cool feature I like where typing '..' turns into '->' for object programming in C/PHP

There's more...I just really like the tool

Source control: SVN (http://subversion.tigris.org/)

  1. Great price (free)
  2. Integrates with UltraEdit
  3. TortoiseSVN integrates really well with Windows.
  4. SVN is considered by many to be a 'standard' - so it's good to get good at using it

Debugging: Firefox + Web Developer Toolbar and Firebug

  1. Firefox renders web pages quickly
  2. Firefox is one of the most standards-compliant browsers
  3. FF works on many platforms (Mac/Win/Linux)
  4. "Code your page for FF, then make it work for IE"
  5. Web developer lets you see your page in many different ways (with/out css, images, etc)
  6. I'm not sure if it gets much better than firebug for debugging javascript!

When you mentioned heavy PHP and web work; an extremely large codebase will require some sort of project management part of your IDE. A lot of the big hitters like eclipse and zend will get you that functionality in an IDE (as well as some PHP debugging), you pay for it with speed of the app.

JayTee
gotta love UEStudio.
nickf
Will UE it debug remotely?
Eli
+1  A: 

Komodo Edit is very good, the paid version has a debugger. I also like Zend Studio, but I haven't used the Eclipse based version.

For source control, I'd recommend using a distributed VCS, git if you can. Otherwise I'd use TortoiseSVN.

Also I would not use Wordpress as a good example of PHP code. I steer more towards CakePHP or one of the other MVC frameworks. If you are interested in a CMS I would suggest WildFlower

Geoff
+3  A: 

Hello!

I'm working as a programmer (9to5) and I use PDT-Eclipse, or to be precise:

http://www.eclipse.org/pdt/

There's also an SVN-Plugin for Eclipse:

http://subclipse.tigris.org/

With this, my daily needs are met, but I think for basic websites and structures this is overdosed, since it can be a nightmare to get everything running and working together (though my coworker "just installed it" and all is fine). And it is a big system you are getting there (for free!), with lots of functionality - fine, when you need it, but annoying and confusing, when not.

Best regards, Basty

bastianhuebner
+3  A: 
Joeri Sebrechts
A: 

Over here we use VS.Php. It is a PHP IDE integrated to Visual Studio, so you can develop PHP applications while still enjoying Visual Studios features. There also is a Standalone Version which does not need Visual Studio to be installed.

You can find it under http://www.jcxsoftware.com

Sebastian Hoitz
A: 

Zend Studio + Subclipse plugin for quick access to SVN

Tortoise SVN for more detailed SVN control

IIS local webserver

Voidstate
+15  A: 

My PHP related development computers are:

  1. A WinXP workstation, decent specs, multiple monitors.
  2. A FreeBSD development server, pretty slow, but it's FreeBSD and only one user.

Most of my development is LAMP - FreeBSD or other *nix, Apache, PHP, MySQL. I like jQuery for JavaScript and Ajax work. I don't work with PHP hosted on windows, butI do use windows for my workstation.

Workstation Setup:

  • Multiple monitors, which is a must for any developer.

  • A W: drive that maps to my development folder on the dev server via samba, so I can open files locally (W:\php-app\php-webroot\file.php) but run them remotely (http://server.localdomain.com/file.php).

Workstation Software:

  • I like to use PutTY and TightVNC to manage the server via KDE in a local window. That way I can edit httpd, php.ini, etc, and restart apache without having to leave my primary desktop. If I'm doing a lot of work on the server, I'll maximize the window to one of my monitors. I find this more effective than having to use my switchbox.

  • For code work, I like the NuSphere PHPED IDE, with the DBG PHP Debugger. Pretty good IDE, and the only one I know of that will do 'remote' debugging for files in a 'local' project (run on the server via localdomain/file.php, but opened on the W:...\file.php).

  • I use Edit+ for a lot of text work, and used to write PHP/HTML/etc in it, before I moved to PHPED.

  • I use MySQL Workbench for database design.

  • I use SQLYog for MySQL data work, queries, viewing data in tables, etc.

  • Firefox, IE, Opera, and Google Chrome for viewing my work. I work mainly in Firefox, and just use the others for compatibility, session security work, etc.

  • MUST HAVE: Firefox plugins - DBGBar (works with DBG debugger and PHPED), DOM Inspector, Firebug, Live HTTP Headers, ReloadEvery, SEO for Firefox, ViewCookies, and WebDeveloper.

  • RegexBuddy for regular expression work (http://www.regexbuddy.com/).

  • Pixie color picker for color work (http://www.nattyware.com/pixie.html).

  • Photoshop and Illustrator for occasional design work. Also like Gimp and Inkscape.

  • jRuler for screen measuring (http://www.spadixbd.com/freetools/jruler.htm).

  • Win SCP for remote file work (ftp kinda stuff). Also works as a pipe to remote file editing if you set the 'external editor' for it to your php editor. Just double click the file on the remote server and it will open and save via SCP for as long as you keep it open in your editor.

  • Spell Magic, because PHPED doesn't have a good spell checker. (http://www.alcodasoftware.com/spell-magic.htm)

  • A time tracker (http://www.allnetic.com/)

  • A simple task manager for todo list kind of stuff.

Server Software

  • Prefer FreeBSD
  • Apache
  • PHP 5
  • MySQL 5
  • Subversion
  • Samba

Edit - Addition to Workstation Stack:

I've recently started using virtuawin for multiple virtual desktops (http://virtuawin.sourceforge.net/). You can use it to run just about any number of virtual desktops, and it works great with multiple monitors (I use the NVidea desktop manager, since I use two NVidea video cards, I assume it works as well with other methods). For example, I currently have 9 virtual desktops, each of which spans my 3 monitors. Switching is very easy, and it's pretty light with memory and processor resources.

This way I can have my email/communication space, my code/workspaces per project, and a workspace that has 3 other boxes open via TightVNC, each running full screen on one monitor, for easy network admin, server config, etc. That way I can be working on any of my projects, replying to clients, managing server configs, etc., in about 1 second.

I've also added winroll (http://www.palma.com.au/winroll/), which is a great, lite, way to add some functionality that windows has long been lacking.

To keep things from getting too boring, I like WallpaperChannger (http://www.wallpaperchanger.de/) which also works with multiple desktops (at least via virtuawin).

I've also replaced my taskmon with Process Explorer, which is WAY better if you want to monitor your resources for leaks and hoggs.

Taskbar Shuffle allows me to drag and drop taskbar icons, which is shocking not to be built into windows.

These aren't exactly PHP stack, but I couldn't work without them at this point...

Eli
This is the best post I've ever seen on StackOverflow. It's pointed me to more good tools than any other single post. Great stuff (and some not so great stuff).
Yar
Thanks, excellent post. I didnt knew about DbgBar. ill download it right away :)
Ibn Saeed
DBGbar is not compatible with Firefox 3.5 :(
Ibn Saeed
Fantastic detail. Thank you so much for taking the time to put this together.
Tim Visher
Dude, apart from the NuSphere PHPED IDE (I preffer Zend Studio) it seems like we are twins. You use exactly the same stuff I do.
Alix Axel
@Ibn - I believe it is.
Eli
@ Eli, i think when i posted it, it was not compatible but its compatible now.
Ibn Saeed
+1  A: 

Using a Mac with:

  • MAMP Pro - Makes setting up new virtual hosts trivial
  • subversion - Source control
  • TextMate (Coda is great too) - For pretty much all text editing. SVN support is baked in and works very well.
  • CodeIgniter - PHP framework similar to CakePHP for many of our projects
  • As other have said, multiple-monitors is not a luxury, it's a must
  • If you prefer a more GUI-based SVN client a colleague of mine likes Versions
GloryFish
+1  A: 

WAMP is probably the best environment for PHP on windows. One of the great features of wamp is that you can easily turn on and off PHP and apache features such as mod rewrite on apache and short open tags for PHP. It is a little different from regular LAMP, but if you have a staging server on linux you can test your code there.

For IDE, since you do heavy development, an IDE like Eclipse or Netbeans would help with code completion and built in debugging. However, because they are java apps, they can be slow on older computers.

Also, learning an MVC framework might make you more productive and help you reuse more code. Symfony, Cakephp, Code Igniter, and the Zend Framework seem to be the most popular. I personally use Cakephp, but use the one that is easiest to understand for you. After doing the tutorial for each framework, you should be able to make a decision based on that.

For source control I have only used TortoiseSVN and subversion on windows and they seem do the job.

jimiyash
+2  A: 

These are the free tools I have been using for PHP development on Windows, and have had no problems on XP, Vista, or Windows 7 RC.

Servers : XAMPP (I've also used EasyPHP)

IDE: NetBeans (Easier and lighter than Eclipse, but just as powerful IMO)

SVN Hosting : Unfuddle.com (free plan is perfect for a lone developer)

SVN Client : TortoiseSVN (integrates with explorer)

Framework : Kohana (It felt more natural to me than CodeIgniter)

dsims
A: 

i recommend you Netbeans... it has SVN , Mercurial, and Kenai, all intergrated. it has a pretty good support for HTML, JavaScript, PHP of course.. and good code completion techniques... its free.. and available for all popular platforms.. :)

JSixface
A: 
  • Eclipse PDT

    • PHP tools
    • XDebug
      • Kcachegrind /inspect xdebug's profiler logs
    • Aptana and/or Spket for js
  • Colinux for dev/test server inside windows

  • Mysql Admin & co
  • Heidi for Mysql for testing bits of sql
  • BeyondCompare as preferred diff tool
  • WinSCP
  • Kitty (Putty)
  • SVN + Tortoise

  • Firefox

    • Firebug
    • FirePHP
    • Xdebug helper
    • Webmastertools

...umm enough :)

SnakeSurgeon