{"id":986,"date":"2011-02-25T15:05:47","date_gmt":"2011-02-25T14:05:47","guid":{"rendered":"http:\/\/www.thomaskeller.biz\/blog\/?p=986"},"modified":"2011-02-25T15:05:47","modified_gmt":"2011-02-25T14:05:47","slug":"one-framework-to-rule-them-all","status":"publish","type":"post","link":"https:\/\/www.thomaskeller.biz\/blog\/2011\/02\/25\/one-framework-to-rule-them-all\/","title":{"rendered":"One framework to rule them all"},"content":{"rendered":"<p>I have a love\/hate relationship with PHP; while I have [talked in great length about all the badness](http:\/\/www.thomaskeller.biz\/blog\/2010\/03\/23\/fuck-php\/) that comes with it, I still find myself quite often writing and \/ or contributing to PHP applications. Most of this work was done with [Symfony](http:\/\/www.symfony-project.org) and, to a smaller degree, recently also with a relatively unknown framework called [Pluf](http:\/\/www.pluf.org), which is the main building block for [Indefero](http:\/\/www.indefero.net), the project and source code management tool I&#8217;m contributing to.<\/p>\n<p>The author of Pluf, Loic d&#8217;Anterroches, has released a new framework to the wild today and its called [**Photon**](http:\/\/www.photon-project.com). It got its name from the particle, so naturally the tag line is *&#8221;&#8230;because nothing is faster than a photon&#8221;*.<\/p>\n<p>So you are by now probably asking &#8220;Ok, but **why should I care** about that? There are dozens if not hundreds of PHP frameworks out there, they all claim to be fast, so this is probably just a complete waste of time&#8230;&#8221;<\/p>\n<p>Well, Photon is very different, because it achieves its performance with a break of the traditionally known request-response model: Much like a real **application server** you know from other languages you can process requests asynchronously now in pure PHP, i.e. start and stop processes on request and delegate long-running work for later execution!<\/p>\n<p>PHP developers did all kinds of bad tricks to emulate this stuff in the past. Most of these tricks employ a cache table and a cron entry that regularily executes some PHP script. This is buggy, doesn&#8217;t scale well and is of course plain ugly.<\/p>\n<p>I won&#8217;t go into more details &#8211; just hop over to [www.photon-project.com](http:\/\/www.photon-project.com), read the docs and grab the pre-release while its hot!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have a love\/hate relationship with PHP; while I have [talked in great length about all the badness](http:\/\/www.thomaskeller.biz\/blog\/2010\/03\/23\/fuck-php\/) that comes with it, I still find myself quite often writing and \/ or contributing to PHP applications. Most of this work was done with [Symfony](http:\/\/www.symfony-project.org) and, to a smaller degree, recently also with a relatively unknown &hellip; <a href=\"https:\/\/www.thomaskeller.biz\/blog\/2011\/02\/25\/one-framework-to-rule-them-all\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">One framework to rule them all<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-986","post","type-post","status-publish","format-standard","hentry","category-indefero"],"_links":{"self":[{"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/posts\/986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/comments?post=986"}],"version-history":[{"count":7,"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/posts\/986\/revisions"}],"predecessor-version":[{"id":993,"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/posts\/986\/revisions\/993"}],"wp:attachment":[{"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/media?parent=986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/categories?post=986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thomaskeller.biz\/blog\/wp-json\/wp\/v2\/tags?post=986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}