Count me in among those who evangelise CodeSniffer. After being highly sceptical for years, I now use it on every project I'm working on. Why?
As Grace Hopper and/or Andrew Tanenbaum famously said,
The wonderful thing about standards is
that you have so many to choose from.
Likewise, it's almost always a Bad Idea™ to create your own coding standard; creating one comprehensive enough to cover all your code is hard, and, much more importantly, it will not be to the liking of the next person to maintain your code, who will try to "improve" your standard so that it suits his long-held coding style. Adopting an appropriate outside standard, whether it's Zend or PEAR or Kohana or JoeBobBriggsAndHisFifthCousin, allows you to concentrate on the content rather than the formatting. Better still, tools like PHP CodeSniffer either support the standard "fresh out of the tin" or those who have gone before have almost certainly implemented support as an add-on.
Mixing coding standards with existing code not written to that standard will give you fits, unless you adopt two simple, complementary rules.
Exclude files which predate your
adoption of the coding standard from
being checked, through the
--ignore command-line
option or equivalent
configuration-file settings. But, when
you do modify any part of a
source file, update the entire file to
comply with your chosen standard.
I just wrote a new blog post about this sort of thing.