IMG_20171115_143849-EFFECTS

SymfonyCon Cluj 2017

One of the highlights this year for any Symfony developer was the SymfonyCon which took place in Cluj-Napoca in Rumania. The conference was full of information, good talks and nice people.

All presentation slides and links to the videos can be found here as soon as they are available github.com/SymfonyCon/2017-talks.

Keynote

The keynote was held by Fabien Potencier. He talked about the improvements which were made in the last month for Symfony flex. This is the newly introduced (currently alpha stadium) way to install Symfony applications and manage the dependencies.

During the talk a live demo was made which worked really well and showed how easy it will be to install a Symfony application and extend it with different bundles and components. We quickly realized that we have to make this possible for Sulu - our hackday topic was born!

Event Sourcing

One of the big topics last year was Event-Sourcing and CQRS. The expert on this topic in the Symfony universe is Ocramius. His talk was called "Event Sourcing: The good, the bad and the complicated".

The first part of the talk described the basics:

  • The storage is time and process oriented.
  • The single source of truth is the event stream.
  • The current (or any past) state can be calculated by the stream of events.

If you want to dig deeper into this I can recommend this talk from Ocramius at the WebCamp Zagreb.

The second part of the talk was about "What is when shit happens?". In traditional applications usally nobody can say what exactly went wrong after the "shit" happened. But for event-sourced applications it's easy to see what's happening and also the state of the application data at this event.

Trend analysis and machine learning in PHP

Michael Cullum talked about the basics of trend analysis and tried to explain the process of learning. This process builds knowledge by processing cause & effects and tries to predict any future effects ontop of this knowledge.

It's not so easy to implement this process for a machine but there are some algorithms to get knowledge out of training data. These algorithms can be classified:

  • Supervised Learning: Give the system some known outcome and extract knowledge from this dataset.
  • Unsupervised Learning: Give the system some input data and let the system extract knowledge during runtime.

The unsupervised learning has one big disadvantage which is that this can lead to prejudices when the dataset is too small.​

Process of learning Process of learning

PHP 7 and beyond: 7.2+

This talk was held by Sara Golemon. She is a core developer of PHP and talked about some insights for PHP 7 and further releases.

She told us that 2/3 of all projects in packagist already use (or at least are compatible) with 7.x versions of PHP. But there are still lots and lots of old PHP projects out there that have not been updated until now. All in all only around 10% of all projects use PHP7.

The performance boost from PHP 5 to PHP7 is (depending on the project) around 30%. But also 7.1 to 7.2 will bring another performance improvement of around 10% because of the improved memory management inside of PHP.

PHP 7 has brought lots of cool new features for us starting with scalar type hints, anonymous classes, secure random number generators (for improved security features) and some new operators like null coalesce "??" and spaceship operator for comparison "<=>". And not to forget the huge memory improvements and performance boosts.

The release of PHP 7.2 is really near (planned by end of November) and it will also have some really nice features:

But what will be afterward?

Sara told us about some ideas for >7.2 and also 8.0 but none of them has been specified or implemented. The list sounds awesome, though:

  • Lambda expressions
  • Pipe operator
  • Exception retries
  • Operator functions
  • ...

At the end Sara made one of the strongest comments of the conference:

 

 

Unconference

The second day was very exciting, especially for me :) It brought some additional spontaneous talks at the "unconference". We also tried to get one slot and as you can see we got it!

I talked about what is Sulu and how we see Sulu in the CMS universe. But the most important part was how the developer can use Symfony to extend and use Sulu as an application framework.

You can find the slide here at speakerdeck

Hackday

The last day was the hackday which brought a lot of new insights. We had some concerns about Symfony and Symfony flex. We love the new features and the way Symfony applications can be composed, but the incompatibility with multi-kernel setups is really a pain for us.

So we used the day to solve the most important issues. In order to do that we asked some Symfony Core developers for help. At this place big thanks to Stof70, nicolasgrekas, weaverryan and last but not least seldaek.

At the end we came up with a handy solution and a good prototype to start improving the Sulu installation process.

The result of the hackday were, besides lots of talking and getting ideas, the following pull requests:

Encounters

At the end of this long post I'd like to give you my special moment of the conference. Actually, it was not one single moment but the sum of it all when people talk to us about Sulu - our community grows from year to year and that's great.

Thanks for all of you who talked to us - it's you that we keep doing what we do.

Stay tuned for another year of Sulu :)