SymfonyCon 2017 recap

by Mario Blažek -
SymfonyCon 2017 recap

This year's SymfonyCon was organized by SensioLabs in Eastern Europe; to be exact in a very lovely city of Cluj-Napoca. Ivo and I had the privilege to take part in this year’s conference which took place at Grand Hotel Italia.

In the previous years, it was held in Berlin, Paris (my colleague Tomislav wrote a great insight about the conference), Madrid (our Edi was there and wrote a recap), and Warsaw.

Cluj-Napoca is the second largest city in Romania and the most of its IT scene is stationed there. The conference had three parts: two days of workshops, two days of talks, and the last day was the hackday.

Netgen at SymfonyCon
The Netgen team

Ivo and I had the privilege to take part in this year’s conference which took place at Grand Hotel Italia, a quite exquisite and nice place.

The first-day talks

The conference started with a keynote by the Symfony creator and project lead, Fabien Potencier, all in a sign of the Symfony 4 release. We all knew the version 4 of Symfony was going to be the best Symfony ever and Fabien proved us right. On-demand dependencies with Flex, lightweight distribution, new directory structure, symfony.lock, and MakerBundle were some of the buzzwords Fabien mentioned. If you want to know more, check out Fabien’s slides.

The keynote by Fabien Potencier
Fabien's keynote

The first talk I attended was given by Julien Pauli, "Optimizing for PHP 7 – the example of Symfony". Julien is a PHP core developer that works for SensioLabs, therefore I was very interested in his optimization suggestions. One of the best things that Julien mentioned was that PHP is actually a compiled language – you’ll just have to just believe him.

The next came from the man who doesn’t need an introduction since he’s already given numerous talks on a lot of conferences, including our Web Summer CampMarco Pivetta a.k.a. Ocramius. His talk was about currently the most interesting design patterns in the software industry, CQRS, and Event Sourcing, and he started by announcing that this is 40 minutes of brainwashing. He did not leave out his well-known humor, saying he feels sorry for everybody who uses Doctrine ORM – for which he is one of the most responsible people. :) His talk was as excellent as any other he’s given, with a quite shortened intro as he had only 40 minutes.

After lunch, Michelle Sanver gave a very good talk on graph databases. Mainly she spoke about Neo4j, it’s extensive and heavily use cases on the Omnomhub project. The talk, which was very informative, gave a great introduction to Neo4j for PHP developers and anyone who’s never used a graph database.

The next talk, given by Carlos Buenosvinos and called "A Journey from Hexagonal Architecture to Event Sourcing", was actually my favorite first-day talk. Carlos explained how they went from the standard way of building apps to Event Sourcing in a few steps or iterations and called this model "Buenosvinost Maturity model". He concluded that there is no need to go full event sourcing – we can stay a step or two behind, according to "Buenosvinos Maturity model". This was one of the talk’s selling points. I've listened to many talks that favor CQRS and Event Sourcing, but no one explained how to actually get there.

BTW, did you know Carlos is one of the authors of a wonderful book "DDD in PHP". The only problem was that I could not reach Carlos for a short chat and take a selfie with him. :)

Symfony coffee
Symfony coffee

The talk by Denis Brumann, “Discovering and solving performance issues”, was quite focused on blackfire.io, an extremely useful tool that should be in hands of every PHP dev.

After the last break, we had Community talks with Fabien. His focus was on improving the Symfony community. He called more people to join in and he presented the fields on which the community should focus more.

Nils Adermann, the co-author of Composer, gave a lighting fast talk about the inside outs of composer.lock and finally showed how to resolve merge conflicts in the composer.lock file. Quite an interesting talk – thanks, Nils.

The first-day ending keynote was about Composer, “Lessons learned by building Composer internals” by Jordi Boggiano. Check out Jordi’s interview with Ivo a few years back. Jordi presented how the Composer internal code has evolved over the years since the initial version released in 2012. It was quite astonishing to see how some parts of Composer are working. Probably the most important thing was the part where he mentioned how challenging is to work on such big open-source project. That struck me very hard because I realized how unfair most of us have been taking Jordi's and Nils' contribution to the community for granted.

Every day we download thousands of libraries from packagist.org with this wonderful tool without even asking ourselves how much work and time those guys spend building it. So, from the bottom of my heart, I have to say: thank you, Jordi, and thank you, Nils. We are very proud to have you in our community. To the rest of us: do not only open issues on GitHub but also try to solve a few.

We also had an impromptu Sylius meeting at one point. :)

The second-day talks

The second day of the conference started with the keynote by Sara Golemon. Sara is a PHP release manager and a core developer. It was nice to see a summed up list of features that were introduced in PHP version 7 and beyond. Also, we saw a few features that will be available in 7.3.

Next on the stage was the one and only Ryan Weaver (a regular speaker at Web Summer Camp, we are proud to say), who introduced the Webpack Encore library. I was quite staggered by this one. An introduction to ES6 and all the things Encore does Ryan explained using his very known awesomeness and without shoes.

After the lunch, Hugo Hamon showed how they built a web platform for the presidential elections in France. The person for who they did this actually become the president of France, so if you are planning to be a president one day, do not forget to contact this guy.

The last talk was about the Doctrine optimization by Anna Filina. She gave helpful tips about optimization, especially for optimizing the processing of a very big amount of data and how not to clog your CPU and RAM.

The ending keynote of the day two was given by Sarah Khalil where she talked about the most interesting features Symfony received throughout last year.

Not to forget, there was the Symfony Awards Ceremony with great people who deserved their awards. Kudos to them!

Before the end of the conference, we tried to comply one of the proposed PSR's – a PSR-8, the so-called Huggable PSR – by one big hug. Or at least trying to do one. :)

Huggable PSR
Huggable PSR

The hackday

On the last day of the conference, we participated in the Symfony hackday. The goal was to skim GitHub for projects using Symfony or any of the Symfony components and do pull requests that would allow support of Symfony 4 on those projects. The organizers set the goal of 150 pull requests.

I'm very proud to say that we achieved that goal, congrats to all participants! The atmosphere was very relaxed. I’ve also managed to get a review and a merge to my pull request to one of the Doctrine repositories (thanks, @alcaeus), and some people even managed to do their first ever pull request with the help of familiar faces from the Symfony community.

Impressions

I’ve had an amazing time at SymfonyCon and the best thing was meeting people I work with on GitHub and admire their code in person and actually have a nice conversation with them. Also, I could not write this recap without mentioning our friends from eZ – Jani and Ramzi.

All in all, it was an excellent conference. I’m very happy to be a part of such a great community. Thank you, Symfony!

Next year, the home of the SymfonyCon will be Lisbon. Hope to see you all there!

Comments

This site uses cookies. Some of these cookies are essential, while others help us improve your experience by providing insights into how the site is being used.

For more detailed information on the cookies we use, please check our Privacy Policy.

  • Necessary cookies enable core functionality. The website cannot function properly without these cookies, and can only be disabled by changing your browser preferences.