phpBenelux 2019 – Friday

Last week was the 10th edition of phpBenelux; and for me, it was the 8th time I had been there. From the first one to the 10th one is quite awesome to be a part of and in those 10 years, the spirit of the event didn’t change much. If anything; it only improved.

With the rest of the Ingewikkeld crew and Monique (my wife for those that do not know) I arrived on Thursday evening. Convinced that there was a unofficial pre-conference social going on somewhere we walked around Antwerp where we finally ended up at the venue, Ter Elst. Alas, we never found a social but I got the chance to talk to Mark Baker again; which is always nice.

The first morning, workshop time!

The next morning the workshops would kick off the event and I attended Matthias Noback’s workshop on Practicing Value Object Design. Even though I have been working with Value Objects for the past couple of clients it was an excellent workshop and I got inspired to try a couple of things out that I hadn’t before.

I still have an idea floating in my mind whether it would be possible to make an extension with some basics for Value Objects and/or a PHP version of the equals method in C#.

Should you be interested in such a thing, please comment on this post. I am interested to see how much interest there may be.

The conference had arranged for an excellent lunch for all workshop attendees; it was an excellent kick-off of the event!

Performance, Algorithms, MySQL as Document Store and Microservices

In the afternoon there was a rich assortment of talks and the five that I have attended were:

  1. Rasmus Lerdorf’s Keynote on 25 years of PHP
  2. Margaret Staples’ talk on Algorithms
  3. Denis Brumann’s talk that discusses how Doctrine works internally
  4. Dave Stoke’s talk on the new MySQL API and how MySQL can be used as a Document Store
  5. Anthony Ferrera’s talk on Microservices Gone Wrong

I enjoyed all of them and learned quite a bit. Most of the teachings of these talks are best experienced by attending them so I won’t go into much detail here.

I did have the following take-aways from these talks that might be worth sharing (and as a reminder to myself to check these out).

  • Rasmus mentioned improvements to phan that sound quite awesome and worth checking out the latest version.
  • These improvements include proposals for defining Array Shapes in DocBlocks; this is something which I am discussing with the phpDocumentor team at the moment.
  • A new performance inspection tool called phpspy is available that can run in the background with nigh-zero overhead costs. Again, this is interesting to benchmark phpDocumentor with and worth looking into.
  • Margaret addressed various forms of Big-O and it’s inverse: Small-x; it’s always nice having a refresher here and encourages me to read up on the topic again.
  • Same goes for the various sorting algorithms. Quicksort and Mergesort were addressed and even though PHP solves a lot for you here; it is nice to know more when working in other languages.
  • Doctrine‘s implementation of the Unit of Work design pattern has been a black box to me since I never took the time to dive that deep into Doctrine. Seeing a talk on this was quite revealing, but hard to share; go see the talk.
  • MySQL has a new API coming that you can try out now by installing a PHP extension and it enables you to make use of all the new features in MySQL 8 and by approaching MySQL in a more Object-oriented way instead of pure SQL (though the latter is still available).
  • Anthony was talking on how he and his team approached a microservices architecture before Kubernetes became a thing; it is an interesting deep dive in how these architectures come to fruition and which pitfalls to experience.
  • During the talk, he mentioned that they used RabbitMQ as a service-bus but might be more inclined to use Kafka as a service-bus nowadays. This triggers me to check out Kafka once again in the near future (it has been in my To Be Researched list for some time but that is a long list!).
  • Anthony name-dropped two other services that are worth looking into: an API Gateway service called, and a product called Zipkin with which you can improve monitoring on services that run on containerized infrastructures.

Didn’t this day fill up my TODO list with all kinds of spunky things to look into?? For me this was similar to being in a candy store; so much to choose from! (also: not enough money, read: time, to buy everything)

The Social

phpBenelux as a conference does not only offer a splendid schedule; they are also (in)famous for their social activities!

What I like best about it is that they always organise the social at the venue itself. I believe that many conferences fail to hit the spot here by having the social at a different venue that is not-quite-close to the conference venue. I always get the feeling that you lose quite a few attendees whom either need to get food before the social and decide not to go, or people just go home.

phpBenelux served dinner in the form of three food trucks, two that serve true Belgium fast-food such as fries, frikandellen and the likes. And especially for vegetarians and vegans a food truck (and what you could get there looked extremely well).

In addition to the location and the food, phpBenelux had also rented a bumper car attraction for both the social on Friday and on Saturday. The previous time they did that I had been in pain for a couple of weeks; luckily I did better this time and I only had trouble walking up and down the stairs for a week. It. Was. Worth. It.

Until the next post!

All in all, a great day of conferencing. And then we had another one on Saturday! However, this blog post is getting big enough as is. So let’s continue in the next post. There I can share a bit about Kubernetes and the other talks that day.