Almost live blogging – PHPDay 2011 in Verona – day 1
It was far too late yesterday. We went out with all the speakers from JSDay the little sister conference f PHPDay. A lot of interesting and fun guys. Still I have to finish my slides until tomorrow..
Anyway today will start with a 4 hour workshop by either Fabien Potencier about Symfony2 caching, Sebastian Bergmann about unit testing or Paul Borgermans about search applications. I will probably attend Fabiens session but peak into the others as well. In the afternoon there are four sessions from Kore Nordmann, Tobias Schlitt and Arne Blankerts.
If you want to stay up to date please come back to this post as I will update it several times today.
After a nice breakfast with Fabien I just followed him to his workshop.
Workshop: Caching on the Edge
by Fabien Potencier
Yesterday I asked Fabien on his opinion on how Symfony2 and Silex (the microframwork based on the Symfony components) differenciate. I will blog about this in more detail soon but in essence Silex s more appropriate for small applications while Symfony2 can support bigger ones although that’s not a strict rule. But with this in mind I’m not surprised to find Fabien using Silex for this workshop.
After some basic information on the HTTP protocol Fabien gave the first code to the attendees.
I’m hearing this part of the workshop now for the third time and still I am amazed how even big audiences can learn all basic and in-depth principles about how caches work. If you are not yet familiar with this topic you should definitely check out his slides!
After this lengthy introduction Fabien comes to the problem of uncachable pages as certain parts are dynamic or personalised. The answer here is of course to use Edge Side Includes (ESI) introduced by Akamai and working in Akamai, Varnish and Squid but also Symfony2 and Silex.
The key sentence about caching is probably.
The goal is to never generate the same response twice so there is little sense in local caching strategies once the HTTP caching is set up correctly.
The workshop features a lot of looking at HTTP headers demonstrating the use of the HTTP cache, the browser cache and how to control them with expiration, validation and ETags but also how to use the vary directive to i.e. cache different results for english and french pages.
In the following ESI demonstration it was nice to see that you can omit resources if they produce an error. So if a web service is down you can easily omit the error message. You can even define an alternative resource to use in such a case. Especially the stale-on-revalidate and stale-on-error directives are very useful. All this was specified in HTTP by Akamai and is fully supported by Symfony2 and Silex.
Any to any – convert your documents
by Kore Nordman and Tobias Schlitt
I have to admit that I never used Zeta Components – formerly known as ez Components and now rechristened and supported by Kores and Tobias’ company Qafoo. The components have been created around 2005 but I never even looked into them. Shame on me.
These are the existing components: Archive, Console Tools, Graph, Mail, MvcTools, WebDav, Workshop
But this session is all about managing different document types.
Zeta Components support different formats such as Docbook, HTML, ez XML, Dokuwiki, Creole, Confluence, PDF and ODF. I instantly miss markdown and textile support..
The Docbook format is used for central conversion. So internally everything read will be converted to Docbook before converting it to the final format desired.
Apparently all appropriate format can be styles with standard CSS which I found interesting however me personally only rarely had a real use case for this kind of multi document format handling I have to say.
Oh and one phrase I noticed quite often was “nobody yet offered to pay us for implementing …”. I guess that’s explained by Qafoos business model.
The end for today
At least for me it was as I went back to work on my slides after some valuable feedback by Ryan Weaver. Would’ve done it in some session and blogged in parallel but that just wasn’t possible with the weak hotel wifi.. sorry.