A kindred spirit has come along to remind me that the journey toward PHP excellence is worth every step. Here is a great email from Bart at capital-b.com (republished with his permission) along with my response:
Hi Mr. Peake:
My name is Bart Solowiej. I'm working on my business in development. The thing is this: I had experience as an undergrad in CS but my professors never gave me much exposure to practical applications in development. I lost interest in coding and graduated with a degree in mathematics and economics. To make my way through school, I developed very basic websites. My interest in coding simply took a new form.
Naturally, I continued the art of web development and began using ColdFusion to develop sites. My ideas began to unfold and my knowledge of web application development grew into a passion. When a friend and developer heard my ideas, I was told to dig into PHP and MySQL for answers to my questions. I did and have since given up on ColdFusion.
Now I have new questions about something more important to my future development: PHP coding standards. I read your articles on the subject online in two different sites. I am about to challenge myself with bigger developments and I'm looking for more detailed information about object oriented programming practices geared toward web application developers.
Aside from the Welling/Thompson manual, the Pear Project Site, and your articles, I can't find much more on the subject of proper, scalable object oriented design practices. I understand that entire university level courses are taught on the subject, but listening to opinions and lectures is not my goal, I seek substance in all formats of documentation. I read through most of the Welling manual in about a month and found it very useful. Now I am looking for more.
If you have a minute in your schedule to make recommendations, I would appreciate you for it. Please continue your topics in PHP development. I agree with your views that PHP's ease of use is often the source of its own misuse and frustrations among executives.
My latest projects all involve content management systems and sites with dynamic document generators. Big projects that I am looking forward to.
With Warm Regards,
Thank you for your email. Your journey through a career in web application development reminds me very much of my own journey, and the questions you ask about best practices are questions I am still asking. That is part of why I write--it is an outlet for exploration as much as an outlet for teaching.
The first thing I recommend is to grab a copy of the upcoming issue of International PHP Magazine (IPM) when it hits newsstands later this month. There is a lot that I share in the print edition that is not available anywhere else. The online best practices series on my blog constitutes less than half of what I share in the upcoming article. Part of the reason for this is that while I enjoy sharing with the community at large through the Internet, it seems like people pay more attention to resources they pay for and subscribe to in print. Plus, it motivates me to organize my thoughts in a different way since I know they will be immortalized in paper and ink.
With regard to leads on best practices specifically for object oriented design, I refer you to the wealth of resources on this topic in the Java community. The truth is that most of PHP's inspiration for object oriented design comes from Java. This is most evident in PHP 5. Furthermore, one discovery I share in the upcoming article for IPM is that many of the best practices I learned along the way are well articulated in the book _Extreme Programming Applied_. This is also a methodology that sprung up in the Java camp, but can easily be applied to other programming languages--especially object-oriented ones.
It is good to meet you and good to know there is a real demand for learning about best practices in PHP development. I will definitely keep writing. :)