Postcards From My Life

Lint I find in my mind's belly-button.
  • EPK
  • Consulting
  • Resume
  • Nerd Herding
  • Talks
  • CWJ 09

Posts Tagged ‘test driven development’

5 Tools Every PHP Developer Should Master

Monday, February 9th, 2009

Dear Reader,

If you know me, you know that PHP is my passion. Talking about PHP is fun, working with PHP is fun, helping others work with PHP is fun. Heck, I love PHP so much that I’ve worked it so that my day job for the last 3 years has been working with PHP and developers.

Over the past nine years of having fun with PHP, began to see that there are five categories of tools that I rely on more than any others. Sure, I’ve got a code beautifier, a standards checker, and a hand full of hand-written scripts I use for various things to make life easier. However when it comes down to it, there are five that I rely on every day.

So here they are in acceding order of importance. Let me know, what are your five? (let’s not start a meme or anything though, ok?)

5: A Unit Testing Tool

Whether you prefer PHPUnit or SimpleTest, Unit testing has proven it’s usefulness in the development process. As a professional PHP developer, you should be familiar with the concepts behind Unit Testing and Test Driven Development. You should also be able to identify when unit testing is a good idea and when it’s a bad idea. (Yes, there are times when it’s a bad idea)

4: A Debugger

As with unit testing tools, there are multiple options for you when it comes to debuggers. dbg, Zend_Debug and xdebug all provide professional PHP developers with tools to break down their code and find problems. Debugging tools allow you to step through your code, stop execution and examine the environment at any point. Debuggers are a developer’s best friend and every developer should have one installed on their development server. Bonus points if you’ve also got FireBug installed. Find you a good debugger and invest the time necessary to use it, it will be time well spent.

3: A ERD Tool

If you are doing serious PHP work then chances are good that you are working with a database. At some point your database structure will grow too large to keep in your head, you will need a tool to keep everything straight; that’s where an Entity Relationship Diagram (ERD) tool comes into play. Tools like MySQL Workbench help you visualize your database structure. More expensive tools like ERWin or Embarcadero’s ER/Studio give you more options for importing and exporting models and keeping your database model in sync with your actual database.

No matter whether you are working on your personal project or the corporate database, an ERD Tool will help you manage it.

2: A Version Control System

CVS, SVN, Git, or a host of other options both free and commercial will help you keep your code safe. Whether that’s safe from your development server’s hard drive crashing or safe from you next coding binge where you change something at 2AM that you really shouldn’t have; keeping your code in a version control system will help. Which system you choose will largely depend on how you or your team work. You need to research the options available and work with your team to make choices like central vs. distributed.

1: A Framework

The most important tool any developer can have in their tool box these days is a framework. Let’s talk about two different types of frameworks.

The first type of framework is a Content Management System. These days CMS systems are complex enough to be thought of as specialized frameworks in their own right. You need to know one good enough to get it installed, up and running and extend it to get the job done. If your needs are easily definable and your CMS of choice has extensions available to fit more of the functionality then learning one could pay for itself in only one or two projects.

PHP has a lot of good CMS projects available and listing them here would simply mean that I would forget one so I’m not going to try. Dig around on Google and you’ll find one.

The second type of framework that PHP programmers need to have in their toolbox is a more generic programming framework. In the PHP world we have a lot of frameworks from which to choose. Most developers chose one of three or four major frameworks.

  • CakePHP
  • CodeIgniter
  • symfony
  • ZendFramework

The framework you chose will largely depend around the type of projects you work on your style. Each of the above frameworks has it’s own strengths and weaknesses.

Regardless your choice, you need to know one framework well enough so that when a project comes along, you don’t burn a lot of time “Yak Shaving” but can get the project up and running quickly.

The Mission Option

There you have them, my 5 tools that every PHP developers should have in their toolbox. One thing that did not make the cut was an IDE. An IDE is great for those who use them. However, if you don’t wall the overhead of an IDE, there are a lot of good Programmer’s Editors out there for you to use.

For me, I use Komodo. Yes, I know Komodo bills itself as an IDE and it has all of the important features of one. However, it doesn’t force me to code it’s way. I can use Komodo to write PHP or edit my hosts file. Active State realizes that every file is not a project and that a developer should only have to use a project when they actually want a project.

Until next time,
(l)(k)(bunny)
=C=

Tags: Cal Evans, FireBug, PHP, php developers, test driven development, testing tool
Posted in PHP, Programming | 19 Comments »

 
  • Team Based PHP Training

  • Sponsors and Ads

  • Conferences I’m Attending

  • About Me

    cal_evansThis is my blog. Sometimes it's my deep thoughts, sometimes it's a journal of things I've learned. Every now and then it's my box of shattered dreams. Most of the time though, it's just the place I like to write. Sit with me as I show you some postcards from my life. While you are here, do me a favor and leave a comment.

    If you are looking for my contact information, bio, picture, ASL, check out my EPK.

    My name is Cal Evans and this is my blog.



    Follow me on FriendFeed!

    View Cal Evans's profile on LinkedIn

  • My First Book

  • Support PHPWomen


    US Shop | European Shop

  • What I'm Doing...

    • @farrelley nope, should go live next Tuesday, subscribe in Itunes http://bit.ly/bf9vmN or the feed http://bit.ly/9nFI6A in reply to farrelley 10 hrs ago
    • awesome time w/@Elazar and @brandonsavage recording #oddWeek #5 (at least I hope it's #5 if not I've got some editing to do) 10 hrs ago
    • thanks for all who expressed interest in reviewing my Speaker Tips. I've got a full editorial board now. 14 hrs ago
    • More updates...

  • Tags

    API article Cal Evans codeworks conference contest cw09 developers devzone elizabeth naramore Exim flex fun IBuildings iPod jobs Kathy Evans linkedin Management Marketing microsoft MySQL Nashville phar photography PHP phparchitect php developers podcampnashville podcast podcasting poem Programming Quickies respect Silly-Con Valley sixty second tech software development terry chay twitter upgrade video wordpress zend zend framework

  • RSS PHP Podcasts

    • webcast: Introduction to Doctrine 2
    • 8 Reasons Every PHP Developer Should Love JavaScript
    • oddWeek Episode #4
    • Creating Custom Zend_Form Decorators
    • Habits of Highly Scalable Web Applications
    • PHPSPCast #6 – Ao vivo da Campus Party (Q&A)
    • php|architect Podcast: oddWeek #002
    • php|architect podcast: oddWeek #003
    • Podcast #2010-02: Stalker Edition
    • php|architect Podcast: oddWeek #001

  • XBox Gamer Card

  • Me

    • Best web design company
    • Cal Evans Dot Com
    • Cyrano’s Apprentice
    • Evans Internet Construction Company
    • My Life as a Child
    • PHP Podcasts
    • Sixty Second Tech

  • RSS My Blog at php|arch

    • An error has occurred; the feed is probably down. Try again later.

  • Flickr Recent Photos

    Blue Parabola Southern Office-Rear Annex is closed for snowSnow Heart@dzuelke getting ready to give his talk@fabpot talking about Dependancy Injection@derickr giving the opening keynotePeople meeting other peoplePHP Benelux Goody Bag ContentsCheck InDSCN2280The main room

  • Categories

    • Apache
    • BlogBling
    • Blogging
    • codeworks
    • Entertainment
    • Entrepreneurship
    • Flex
    • Humor
    • JavaScript
    • Long Form
    • Management
    • Marketing
    • Me
    • PHP
    • podcasting
    • Programming
    • SQL
    • Technology
    • Web 2.0
    • wordpress
    • WordPress Plugins
    • writing
    • zend framework

  • Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org


Postcards From My Life is proudly powered by WordPress
Entries (RSS) and Comments (RSS).