On December 1st and 2nd, Oro Inc. attended the SymfonyCon 2016 conference . The whole event was organized by SensioLabs and took place in the elegant Mercure MOA Hotel in central Berlin.
First day – Thursday
Fabien Potencier, founder of Blackfire.io, SensioLabs, and Symfony, began the event on the first day with the announcement of SensioCloud, a brand new developer’s hosting cloud service that will make it easy for developers to manage, deploy, and scale PHP applications.
In contrast to Heroku, SensioCloud offers a variety of sophisticated, Symfony-oriented features, such as the possibility of merging databases from production containers to test containers, which will eliminate the need to maintain a fixture system within your application. SensioCloud also comes with the ability to protect and recover whole databases, no matter which DBMS is used. All popular types, including PostgreSQL, MySQL, MongoDB etc. should be supported natively by SensioCloud.
Following Potencier’s presentation, Nicolas Grekas, the CTO of Blackfire.io, gave an interesting speech on the PSR-6 standard and its improvements regarding file cache management. He explained that the PSR standards will now encompass file cache storage and supply a new API, that will standardize cache storage and simplify cache usage in Symfony applications. The latest Symfony 3.2 — released on the first day of the conference — already supports this solution.
Sebastian Grodzicki, CTO of Showroom, then gave a presentation that covered the numerous application profilers, which are available to developers as both free and paid services. Grodzicki also explained basic, known libraries like Xhprof or xdebug with CacheGrind, and concluded his talk by showing the popular blackfire.io and mentioning paid solutions, like Relic. In addition, he shared several tips and demonstrated some things to avoid in order to make your code as effective as possible.
The first day wrapped up with a lecture about Command Query Responsibility Segregation and Event Sourcing patterns by Samuel Roze, the founder of ContinuousPipe. In this theoretical talk attendees heard about the approach of programming an application using the CQRS pattern, having a Query and a Command, i.e. either objects querying a specific application state, or performing an application action. Next we heard of Event Sourcing, which allows everything, that happens in a system, to be represented by a sequence of events. Samuel explained, how to combine both approaches, using a restaurant as an example system to illustrate the practical benefits.
Second day – Friday
The second day began with a big announcement from Symfony Headquarters: Fabien Potencier introduced Symfony Flex, a smart composer wrapper that simplifies the installation and management of Symfony application stacks. Symfony Flex creates less but more meaningful output, gives developers easy syntax for adding and removing bundles, and comes with automatic configuration updates. Symfony Flex also offers some predefined, selected external bundles, like the Easyadmin Bundle, which are supported natively. Both SensioCloud and Flex will be available to the public by early 2017.
Andrew Carter followed this with a smart lecture on how to stretch PHP’s abilities to the max in terms of developing long-running PHP processes. It was essentially a great guidance of pitfalls and recommended practices. Andrew explained how detaching and disposing memory in PHP applications is important in this context, how the garbage collector behaves with variable references, and what some common problems are with regard to memory management in PHP. Worth mentioning is that Carter had powerful slides and engaged the viewer’s attention a lot.
One of the most fascinating and insightful lectures of the conference came when David Zuelke, of Heroku, reviewed Apache’s Kafka. He explained why Kafka should not be mistaken with a simple message queue or database. Instead, it’s like a Writeahead Log. In brilliant and snappy slides Zuelke presented dozens of benefits with using such a system and shared some ideas on how easy it is to scale a Kafka setup. For instance, Kafka’s data can be multi-subscribed easily, organized into partitions for quick data aggregation, and can work without any input throughput limitations. The only limit is the amount of data your disks and network can handle. Despite its rough configuration, Zuelke convinced us that Kafka is definitely worth investing your time.
Other interesting talks included Sarah Khalil’s brief presentation on all the new features of Symfony Framework 3.1 and 3.2, as well as Romain Neutron’s lecture about all the possible security headers of HTTP requests, which included examples of popular web attacks and ways to prevent them.
SymfonyCon in Berlin was absolutely time well spent. We are looking forward to next year’s edition and can’t wait to tell you all about it.