When I started learning python sometime back, the PEP 0008 (Style Guide for Python Code) is, and was an indispensable reference guide for writing good python code. Naturally, and very recently I stumbled upon something similar with respect to PHP, aptly titled - PHP: The Right Way.
I’ve been writing PHP code for about 11 years now. That’s a long time. Along the way, I’ve written, and published my fair share of bad PHP code. Most mistakes I made, I’ve learnt from. Some other mistakes were only pointed out to me while reading this guide.
PHP - The Right Way.
PHP: The Right Way is a living, open sourced document that provides some very much needed information about good, and bad practices with respect to writing PHP Code. It is a quick reference guide for learning best practices for PHP code, PHP coding standards, and links to PHP tools, and tutorials around the web. Since the time I’ve started reading it, the document has been another indispensable tool, much like the PEP 0008 .
The document is long; it contains everything you need to know to write good PHP code. Everything from design patters to virtualization is covered within the document. PHP: The Right Way is easy to understand, and follow. It provides tons of examples, of both - good, and bad PHP code. It’s meant for anyone, and everyone working with PHP - from the beginners to the pros. What I love about the document is that it offers suggestions where multiple options of doing something are involved, and where possible it also explains differences involved with various approaches with use-cases. There’s list of some awesome resources to help you with your PHP projects too.
If you’re new to PHP, or are an old timer, I strongly suggest using, and referencing PHP: The Right Way. It comes in very handy, especially when working on business critical production code.
PHP: The Right Way is the brain child of Josh Lockhart , and is maintained by him. Any one willing, and able to contribute, can contribute to the document. There are a ton of contributors already involved with the project, and it’s very actively maintained (at the time of writing this post the last update made was at 2015-06-12 15:41:35 +0000).