Recap SymfonyCon 2016: Community Reunion in Berlin
Everybody loves conferences. Or at least I assume that’s why people attend them. Besides expanding your knowledge, there’s at least one more bright side to that: You get to make new friends! Being a newcomer to Symfony, it was my first time attending an event like SymfonyCon, held in Berlin this year. Around 1,200 people from over 40 different countries attended the conference, so it’s the perfect opportunity to get to know new people and share experiences and insights. Don’t fret if you couldn’t attend though; all the talks will be available at SensioLabs’ YouTube Channel.
Talks, workshops, discussions: these were my highlights
The conference started with Fabien Potencier, CEO of SensioLabs, delivering the keynote, where he also announced SensioCloud: SensioCloud aims to be a development-driven hosting environment, which will be available at some point in 2017. Using a Git repository as the basic entry point for your codebase, the basic premise is that you add a SensioCloud repository as one of your project’s remote repositories, so that when you create a new branch, you also get a new environment exactly like your production one (including database, caches, user sessions, assets etc.). This allows us to develop on environments identical to the production environment without putting production itself at risk, since the development environments are a snapshot of production.
SensioCloud will offer an API and integration with external services like Jira. An example use case is that you need to fix a bug and for that a new environment can be created, which will have its own URL and can be then shared with the project managers for testing and review of the implemented changes on that environment. Of course, since this is, in its core, a hosting service, the idea is that your production environment is hosted on SensioCloud and with that you get perks like automated traffic management and scaling when using the service, while being offered a full environment stack managed by SensioCloud itself.
The FOSUserBundle is a lovely way for Symfony n00bs like me to get into Symfony user management, but Damien advocates that one should ask oneself if using this bundle on a professional project really is the right choice. Why? Well, FOSUserBundle is a quite opinionated bundle, meaning that when developing it, some choices were made and those choices might not align to your needs in your project. If this is the case and you still decide to use this bundle, it’s likely that you will need to bend the existing implementation, perhaps even hack it, and when you’re finished, you may have ended up putting more effort changing the bundle than if you had simply developed your own one. So make sure to take a closer look before choosing to use one of the most used (and hated) Symfony bundles.
In this talk, the speakers exposed their view on how and why one should contribute to open source projects and how to pass on those values and ideas on to one’s managers and, in doing so, getting a mandate to actually contribute and having the company becoming a part of the ever-growing open source community.
I’d just like to take this opportunity to note that Cocomore is an active member of the open source community, namely by contributing to the Drupal open source project.
Tobias Nyholm made an interesting presentation on state machines and how they are useful and applicable in a project. In state machines there are "states" which you can jump to and from via a "transition". In an application, you can think of these transitions as some operation the user does, which changes the current state of an application. And the description of these possible states and respective transitions essentially defines a workflow. Thus, the Workflow component was born and can be used as of Symfony 3.2. With this component, you can describe sequences of operations such as how a user can traverse through a multi-step form or the rules to a game.
Fabien Potencier also let us take a peek at a personal project of his, which he has been working on and off for the last two months and which is expected to be released shortly: Symfony Flex. Recognizing that installing and uninstalling new bundles isn't always the most straightforward (nor cleanest) of tasks, Symfony Flex will allow for zero-config installation of new bundles, authoring and configuring them in the process, and, hopefully, allow the bundles to clean after themselves when uninstalling. It will also allow developers to have only the minimum components and elements of Symfony required for their projects to run, which is great for prototyping. Of course, this won't simply work out of the box for all bundles at launch; the bundle will need to support this behaviour, so though one could expect a slow start for Symfony Flex, in the end it's all up to the Symfony community to get at it and add the support for this new tool on the best and most used bundles.
Speaking of which, another goal is that the community itself decides which bundles are the best and privilege those. For instance, if you want to install some administration bundle/system in your Symfony installation, you could simply ask the tool to install “admin” and it will install the best admin system maintained by the community, without you having to choose one specifically – though you naturally could, if you wanted to. This will of course lower the entry bar for Symfony newcomers and ease the work of veterans.
I’m actually quite excited and intrigued by Symfony Flex. I can’t wait for it to actually come out and see what happens next! Will the community embrace or reject this new project?
All in all, I found SymfonyCon to be a great event and can’t wait for the next one, which, by the way, will be held in Romania next year. I’d just like to thank the organizers, staff, speakers and sponsors – especially Shopware, who was the official coffee sponsor ;-) Thank you for making SymfonyCon happen and for making it such an awesome experience.
See you next year!