This is the PHP & Friends track at the excellent FOSDEM (http://fosdem.org) conference for 2017
Boost up your code with Specifications
Talk by Emii Khaos (55 minutes)
Big repositories, complex query builders, tight coupling to your ORM. Adding new behaviors and search methods can be a mess. Don't struggle anymore! This talk shows you how to decouple you from the ORM and writing general search behaviors for all your entities with the specification pattern. Your new specifications are not tied to any specific ORM and can be reused on different levels.
Unbreakable unit tests
Talk by Michael Simonson (55 minutes)
How often have you rewritten your unit tests from scratch just because the code it was testing evolved slightly? In this session we will explore some unit testing techniques from other languages to produce more robust tests in PHP. You’ll never have to send your unit test to the trashcan again.
PHP in the graph
Talk by Damien Seguy (55 minutes)
Graph databases come with enhanced connectivity of data and whiteboard friendly paradigm. It requires learning a new Graph Traversal Language, that crawls the network and brings informations. It's indeed a fresh new look at how we store web of data and search for it. We'll meet gremlin, from Apache TinkerPop, which provides an abstract layer that make it easy to express your business logic without fighting with the code, and several Open Source graph databases, available for testing and toying.
Metrics and an application log - your new best friends
Talk by Michael Heap (55 minutes)
Do you remember the time you spent an afternoon putting print statements in your app trying to debug an issue and removed them before shipping the fix, only to add them back in a day later to work on another issue? Wouldn't it be great if those debug statements could just stay in your code forever? Like a little gift that keeps on giving, not just for you, but for everyone else on your team too. That's what an application log is for! Logs aren't just for when things go wrong. They're for helping you to keep track of what's going on within your application. We take a look at how you can add helpful messages throughout your codebase and leave them there, even in production! We'll cover common logging strategies, log aggregation and how to efficiently work with your logs to get the data back out again. We'll also take a look at metrics solutions such as Graphite that can help augment your logs to help work out what was going on by correlating event logs with peaks/drops in other monitoring systems.
From text logs to extensive automatic monitoring
Talk by Sven Finke (55 minutes)
Bugs, corrupt data or performance issues on web applications are often recognized far too late. In the worst case they are reported by the customer, so they probably have already done some serious damage - frustrated the user, made them lose trust or even corrupted their data. Finding these bugs or recognizing them early gets especially hard, if your application makes heavy use of background processes, daemons or cronjobs. They might even throw exceptions that are buried somewhere in the logs, and no one will ever be aware of them, until someone has a look into the log files. I want to show a way out of this misery and provide different solutions in form of practical examples. These will include different levels of monitoring - from simple text logs on the servers up to a fully monitored application including hardware monitoring, extensive metrics, indexed and searchable logs of the whole environment, performance analysis and alerts if something odd happens. I'll show different examples and give ideas when such a fully monitored solution is a good idea, or when a "light monitoring" is applicable.
Creating a dashboard with Laravel, Vue and Pusher
Talk by Freek Van der Herten (55 minutes)
On the wall mounted TV in our office a dashboard is displayed. At a glance we can see what the current tasks for each member of our team are, which important events are coming up, which music is playing, if it will rain in the next 30 minutes, ... and much more. In this demo I'll explain how we leveraged both Laravel and Vue to build the dashboard. After demonstrating the dashboard itself we'll take a deep dive in the code. We'll take a look at the entire flow: the grid system, broadcast events, the Pusher service, some cool Vue mixins and much more. After this talk you'll be able to setup a dashboard using our code available on Github.
Transform your monolith into a nice SOA app
Talk by Mathieu Gillot (55 minutes)
Let's look at how to migrate a legacy PHP application to a modern scalable set of services. The presentation will focus on best practices, pitfalls to avoid, and tools that will help you to safely achieve this long-term task. We'll also give some hints to move further to a fully micro-services environment.