This site has been archived and you can no longer log in or post new messages. For up-to-date community resources please visit

eZ Community » Blogs » Core Development team » eZ Summer Camp 2014 Workshops...


eZ Summer Camp 2014 Workshops Retrospective

Wednesday 10 September 2014 2:14:24 pm

  • Currently 3 out of 5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

In its third year, eZ Systems presented the eZ Summer Camp organized in Rovinj, Croatia by Netgen. We always find the event really interesting to us, since it is technical in nature but leaves plenty of time for discussions with a diverse group of attendees, from developers to marketers and editors. And most importantly - it’s always a lot of fun. Netgen did a great job this year, with attendees learning a lot and enjoyed themselves over the course of the three days.

This post will focus on the day-to-day workshops at the eZ Summer Camp 2014.



This year, four eZ Systems employees contributed to the talks: Roland Benedetti, VP of Product management, André Romke, VP of Engineering, and two senior engineers from the Platform team: Jérôme Vieilledent and yours truly, Bertrand Dunogier.

We have to admit that it was a little bit stressful, for the engineering team alone it took 12 hours to put everything together. We really wanted to do it right and in retrospect, we were all very satisfied with the results, the time was well invested. Most of the workshops had between 20 (for the 6 hours classes) and 50 attendees, and we feel like they went really well.

Our workshops

The eZ team had presentations and workshops planned over the course of the three days. Roland talked about the product backlog, André about the upcoming releases technical features, and Jérôme and myself had 10 hours worth of classes speaking at the technical workshops. Topics included migrating to eZ Publish 5, building multilingual and semantical websites with eZ Publish 5 and organizing applications.

Day 1: Migrating from eZ Publish Legacy

Jérôme was the skipper on this one, while I was backing him up. He explained in detail how he's migrating Metal France, a website he manages about Metal Music \m/. The |eZ Publish 5 source for the website can be found on github. It is really a good example, with a wide range of features.



His clear organization, with two bundles, one being legacy and the other a  new stack, is something we really recommend. We look forward to making it easy and safe to unplug the legacy part when eZ Publish 6 (eZ Platform) is released and doesn't require the legacy kernel anymore.

Overall, this allowed us to clarify the mapping of legacy features to new stacks, and explain that the upgrade process could be very progressive thanks to the many backward compatibility features of eZ Publish 5.

Day 2: Building a Semantical, Multi-lingual Website

This one was the workshop. 6 hours of step-by-step eZ Publish 5 development, from static HTML files to a fully working website. We had prepared a website we really like, eZ Summer Beer. It is an editorial site where editors talk about, well, beer. We love beer.



The goal was to show how eZ Publish is well adapted to typed content. For that, we imported data from an online database of beers, We of course made the import source code available, but a begginer level workshop was clearly not the right place for going into details :-)

We didn't expect to cover the whole 9 steps, and we indeed didn't. But we nonetheless managed to show the important parts. We focused on the main aspects of work as an eZ Publish 5 developer: templating. General layout considerations, like twig blocks, as well as eZ view templates, and showing content in general, was extensively covered. Of course, we also wrote quit a few template rules. The main template functions, ez_render_field,ez_is_field_empty, using the view controllers, and general Twig filters, were also explained. Custom controllers were covered, as well as day-to-day usage of the eZ Public API. We ended with a customized pager, based onPagerFanta.

The [github repo]( of the website tutorial is available, splitted in 9 progressive steps.

Day 3: Organizing an eZ Publish 5 App

The last one was my job, with the assistance of Jérôme as a co-speaker, like I did during his migration workshop. I mostly talked about versioning an eZ Publish project, and organizing configuration so that deployment and maintenance are as easy as possible.



Even though I didn't intend to do so, I ended up describing the dual kernel layout I blogged about a couple month ago. It is an experiment that separates the eZ Publish kernel from the actual application's. It's not much, but as far as I'm concerned, it is clean and usable. It seemed to us that many found it interesting, and would be interested in giving it a try for their devs. The source code is still available in my fork, and I'll be happy to guide those who wanna give it a try. But in this regards, I gotta admit that this experiment is a workaround for our 

Developer experience round table

At the end of the 3rd day, a set of round tables was organized. We had about one hour, and participants were asked to change tables after 20 minutes. It made it a bit hard to keep a continuity between ideas and topics, and there was overlap (“we've talked about this and concluded that…”), but it was still really dynamic and, as far as I am concerned, fruitful.

I was the skipper at the Developer Experience table, a topic I care very much about. About 15 different people joined over the 3 sessions, and quite a few topics were discussed, by different types of developers. This allowed me to discuss day-to-day issues with developers. I now have a nice list of things we can approve on, so thank you all :-)

Summarized, those points would be:

  • documentation
    • more about custom fieldtypes
    • better ways to guide people through the documentation
    • best practices, both for code and architecture
  • need for more data in eZ Publish controllers (like the content type’s textual identifier)
  • the missing search/list controller
  • performances, especially in regards to how much is fetched by the API
  • better multi-site support
  • improve the search result object (countable, iterable…)


Overall, we really think it was a fruitful event. We got to talk to many people from various backgrounds, and received good feedback, on both positive and negative aspects. We could really feel that eZ Publish 5 was taking off, and that choosing Symfony2 worked for both us and our users. It was also an opportunity to talk about better collaboration with those people, and I think we’ve managed to build a few bridges (at least plans for bridges) that will help us make this much better in the future.

Count us in for the next one ! :-)

Proudly Developed with from