This week I gave a two-days power workshop "PHP in big projects" ("PHP in Großprojekten", as it was in German) on the conference "Entwicklertage", organized by the Software & Support publishing house. One of the topics was to tell how companies save millions of Euros by choosing PHP (like E.ON, for example) instead of Java.
With the advent of the discussion of PHP being in the Enterprise (in fact, it has been there for years, at least we know of mission-critical enterprise PHP applications since 2000), I think it’s time to post my point of view of PHP being in the Enterprise (being a result of my experience with our enterprise projects for companies like Telefónica, Sixt, HypoVereinsbank, Vaillant, Siemens and others; over 300 people that I’ve taught PHP in large companies like Cap Gemini, Deutsche Telekom, Bundeskriminalamt, E.ON and others).
PHP’s main USP was always "getting things done fast". I remember a situation in one of our current projects (a 15-country international project with more than 1.000 mandays of PHP work that will go on for years) where I had to present a graphing solution including some complex XML stuff in two hours for the group marketing head. I think this is only possible with a language like PHP which makes it so easy to get your things done.
So, if you go and have a look at the PHP poster, you see several additions to the new object orientated model. There are plenty of new extensions that make the life of a programmer easier, including sqlite, mysqli, htmltidy, iterators and such.
In my power workshop, people were astonished that in the >1.000 mandays project we haven’t used any kind of UML diagram. Nor do we have complex nets of classes – we like to have a flat class hierarchy with a maximum level of 2 or 3. Overall, we prefer principles like KISS, some rules from eXtreme Programming and Scrum in favour of having everything in complex structures.
The customer doesn’t want beautiful code with the latest design patterns hype!
Instead the customer wants to have code that gets things done fast and that is easy (means: for less money) extensible in the future. For German readers: please consider Kristian Köhntopp’s excellent posting about this topic.
Don’t misunderstand me: we also use object-orientated code (about 80 classes in the aforementioned project), but we care for a pragmatic way of programming. Yes, we do use ER-designers like DBDesigner and such. Yes, PHPUnit does make sense but only in special cases. Of course we document our code according to the PHPDoc standard.
But our customers love that PHP is not like Java or at least we don’t program with PHP like in Java. And that’s why more and more big companies discover PHP as a valuable alternative in the web area.
The globalisation changed the markets. Companies have to react in shorter timeframes to changing markets. The companies want to get things done fast for their websites. More and more companies discover PHP as a great alternative that backs their needs in this area.
If you want to know more about how to deploy PHP even in the most complex IT infrastructure, don’t hesitate to write a mail.
Just for the records: I regard the recent DevShed article „Conflict PHP“ as some kind of Zend-bashing. All PHP core developers, from Zeev, Andi, Derick, Georg, Marcus Börger (only to mention a few) have done a great work by releasing PHP5 (a big thanks to all of you). And of course the new object model is great – if you know how and when to use it.