Note: We are actively seeking to hire exceptional PHP programmers. More on the job offering at the bottom of this posts.
After one of my posts got featured on Ajaxian many interesting offers hit my mailbox. One of them was actually from a startup right here in Rotterdam called ZeroBubble. I was happily surprised to find an IT startup in Rotterdam. Especially since after talking to them it became clear that they operate at the highest level of technical possibilities and have an absolutely amazing team. Two months ago I happily joined their ranks.
The project we are working on is called YouTellMe. I don’t want to share too much about it right now, but surely I will have plenty of exciting blog posts coming up in the next months.
Currently we are working with some of the nicest tech on the net. To give some examples: our admin interface is written entirely in ExtJs, the site’s search is powered by Lucene, we use prototype 1.6 for great object extending, for ajax functionality we use yahoo history manager to keep it bookmarkable, the entire site has been optimized according to the Yslow principles and we are doing some interesting things with openSocial. Given all these you can’t help but wonder why we aren’t using Symfony.
Why no Symfony?
Personally I am a huge fan of the Symfony framework. The team at Sensio has done an absolutely amazing job. My opinion on the framework is best described by these blog posts Part1, Part2. However the current project we are working on has some special requirements. First of all the application’s calculations are very harsh on the servers. Combine this with a large amount of AJAX and you have some serious performance issues. The calculation speed has been pretty optimized by a colleague of mine, who wrote a python daemon for the task. Still it is essential to keep the PHP framework’s overhead to a minimum. Prior to my employment at this company it was decided that Symfony would be too slow to handle the task. This is a topic which often nags Symfony.
I am curious how fast Symfony can be. For the YouTellMe site I need a bootstrapped and blazingly fast framework. In the coming weeks I’ll be setting up some tests too see how Symfony compares to our home build framework. As a starters I’ll definitely relieve Symfony from the ORM and fancy routing. From there on I will need to test to see which components are slow and can be removed. The clean and flexible programming in Symfony should make this easy to do.
Our current framework is very lightweight. It even does not do auto loading. I for one have no clue what the speed gain is from not using auto loading and it would also be interesting to test it. The MVC structure is entirely home build, but the rest of the features use Zend.
If there are readers of this blog, which have gone through the process of stripping Symfony, be sure to leave some tips in the comments!
Jobs at ZeroBubble
ZeroBubble is currently recruiting talented PHP programmers in the Rotterdam area. We are located in the Beurs World Trade center. If you are into the latest technology and like to work with great people, software and hardware be sure to email me at thierry [at] zerobubble [dot] nl or my boss at joost [at] zerobubble [dot] nl. As mentioned we work with fun software such as Ext Js, Lucene, Zend, object oriented js with Prototype 1.6, yahoo history, Yslow principles and openSocial.
We are looking for both full and partime PHP programmers. Python, ExtJs, prototype, server admin, subversion and memcached knowledge are all nice extras. As a main quality though, you have to be excited about building a unique and amazing web application.

jo responded on 21 Jan 2008 at 9:16 am #
I wonder why people do so often complain about performance issues concerning
symfony. We have here an single server application running on symfony with about 5 millions PIs.
The only bottleneck we experience is the database interface (we use the standard propel). This is why we use here a mysql master-slave replication.
You might say that 5 millions is not that much. But not too bad neither. Isn’t it?
Cheers
Jo
Lukas responded on 21 Jan 2008 at 9:17 am #
I think with Symfony 1.1, you will find that its much easier to do these sorts of optimizations, that is removing/replacing core components. Anyways, with a bit of hacking on internal classes I managed to get symfony 1.0 to suprisingly good results. I actually did not spend that much time on optimzations and for a fairly high traffic site (a portal that is called for the first request in all Hotels powered by wifi from our client), the bottleneck seems to always be the dedicated authentication hardware or the java backend .. the only things we had to tweak on the frontend were the SOAP call cache into the Java backend and better filtering of applications pretending to be browsers. And in all of those cases it was again not PHP choking, but the backend apps.
Tom responded on 28 Jan 2008 at 10:05 am #
A little tip, try and setup a tempfs (ram based hd) and have a script copy your symfony files on OS startup. This way you get a blazing fast scriptloading time. Since symfony (and its plugins) use a lot of files, this can nicely increase your performance.
Greg Magarshak responded on 08 Feb 2008 at 8:16 am #
gregory at gregory ,net
I found your post on Google, and checked the date — it’s quite recent!
Listen, if you’re looking for a blazing-fast framework that DOES all the main stuff you need from symfony:
* autoloading classes
* importing modules and components
* fancy routing rules
* templates, layouts
* validation and escaping
* MVC architecture
but really really fast, I can give you my framework. I originally developed it exactly because I had the same goals as you — I really liked symfony, but I wanted something that was lightning fast and could be very responsive.
Keep in mind, btw — you can mix symfony with plain PHP files! So if you need a fast ajax response, just don’t use symfony for that particular action, and make it a php file. Also, even if your controller and view code is slow, like in Ruby on Rails, webservers can still be replicated, and your DB will be the bottleneck. So maybe you should jsut stick to symfony.
But if you want to see a really fast framework that does 90% of what you did in symfony, check mine out.
By the way, a ‘hello world with templates and components and routing and autoloading’ executes in 2ms (with APC), unlike symfony’s 80-100ms.
WOOT!
Oh yeah, and write naked SQL with PDO plz. :)