Why I like Symfony Framework
I have been doing Java programming for quite a few years. Java is where I got my OOP lessons from and it just makes sense to me, from the multi-threading model, interfaces, abstract classes, encapsulation, to the bean.
On the other hand, I have also been doing a bit of PHP4. Coming from a Java background, PHP4 Object Oriented seems backward, but I love the flexibility of PHP and how it feels right for developing websites.
So when PHP5 with java like OO features was released, I was very ecstatic (in a normal kind of way). And since then I’ve been looking for a PHP framework that takes full advantage of that java like OO features. I tried few frameworks before currently settled with Symfony Framework.
Here’s few things that I like about Symfony …
Well known PHP libraries in one framework
Symfony Framework does not reinvent the wheel like many other frameworks, instead it integrated the best breed, well known, and matured PHP libraries like PEAR, Propel, Phing, and more. I’ve used PEAR in many occasions before started with Symfony. I’ve also used ORM (what Propel is) and have used Apache Ant (what Phing is based on). So although I still had to spend time learning Symfony, I was already familiar with its components.
Symfony supports plugin and hence there are so many plugins available for Symfony. There are plugins for YUI, Extjs, Doctrine, Smarty, Prototype, JQuery, and more.
There are also high level plugins to add complete features to a Symfony project like:
- User management plugin
- CMS plugin
- Blog plugin
- Forum plugin
- Wiki plugin
- Media assets management plugin
- Lucene plugin
- And many many more
All of those are available to every Symfony developers list of arsenal. Plugins can be installed into Symfony project manually or via PEAR.
One of the best features of Symfony is its CLI commands. You can start a Symfony project in seconds. Just type a command line and all the skeleton of your project is created for you (including skeleton for your project’s unit tests). No need to reinvent your own file structures, but if you’re not happy with Symfony’s default file structures, you can change it.
Works well with Eclipse
I particularly like the way Eclipse provides auto code completion for Symfony. It is able to parse the classes in your Symfony project and provides auto code completion for them. Notepad just doesn’t cut it any longer since I’ve used Eclipse.
However, there are tricks that you need to know to get Eclipse PDT to code completion all of your Symfony classes (will write in another post).
Used by big companies
I’d still use Symfony even if there’s no big companies are using it but it’s good to know that big companies are starting to notice this framework.
- Yahoo is using Symfony to develop Yahoo! Bookmarks
- Delicious preview was rumored to have been built using Symfony.
Open source (MIT License)
Last but not least, Symfony is open source which mean the community (thousands of developers) is able to help to maintain it.
So there you go, few things I like about Symfony Framework