Recently I started my own company (Solid Web Code) and, among others, went to my old employer to see if I could mean anything for them as a freelancer. I was astounded at the improvements they have made to their internal structures, especially also in the web development (which is a major part of the company).
A few years before I started working there with the hope that we would implement frameworks like Ruby on Rails or PEAR to structure our work, but back then I was told again and again by Marcel Brouwer (head development) that it was his experience that we could work faster and more customized without such frameworks and that the dynamic of the company needed us to program very basic PHP. We had some use for OOP, but it was all limited to fast and even faster production of the code.
Now they seem to have turned around and embraced Symfony, an open-source PHP framework that we’ve been waiting for. I very much appreciate this change and quickly started with the Basic Symfony Tutorial which is actually pretty good. By now I’ve played a bit more with the code and created some projects in Symfony.
What I like most about Symfony is that it forces you to use known best practices, such as OOP, decentralizing (MVC pattern), caching and logging without having the feeling that you are limited in what you make. Other best practices, such as automated testing, database abstraction & relation mapper (doctrine) or generalized cron jobs are recommended, but not required. This is handy for smaller projects or simple sites that do not need the full scale of features that Symfony offers.
If you thought that was all, then you are wrong. This is just the basic list how Symfony helps any project. Aside from these basic features there are a lot of build-in automated scripts to generate for example your whole admin system or even generate most of your frontend for you. Symfony was a framework I was waiting for. Easy to use, in PHP, adaptable and in the right set of coding standards.