PHPBenelux Conference 2020 is the event that starts the conference season with workshops, talks and amazing socials.

Friday 24th January 2020

User Experience Design 101
Workshop by Kenneth Schabrechts in Tutorial rooms (3 hour)

User Experience, User Interface, User Experience Designer, welcome to the world of buzzwords. We developers tend to stay away from this world and its processes. Yet, like those who fulfill these roles, we have the same end-goal in mind, a great product for our end-users. A User Experience Designer will combine the UX and UI research to get to a beautiful and useful end product. But how exactly do they get this result? In this workshop, we will learn how User Experience Designers do the following: Use Design Thinking Construct a Business Goal and a User Goal Build up Persona’s Create User Stories and User Paths Build wireframes with best practices We’ll also learn how to use this process to our advantage. Resulting in better analysis, more in-depth test cases and more useful fixtures.

Penetration Testing PHP Applications from Scratch in Tutorial rooms (3 hour)

Security is a tedious cat and mouse game, that’s increasing in development speed and complexity every single day. Hackers’ game plan is to know more about certain edge cases and in-depth details regarding the technologies they’re attempting to compromise, than the developers who initially built and are currently maintaining those technologies. To truly understand and to be competent in the security aspect of PHP development, we need to learn how to think like a hacker. Once you’ve exploited a simple SQL injection vulnerability for the first time, I can guarantee that you’ll never let one slip through a code review process again. In this workshop, you’ll be working your way through exploiting a series of vulnerabilities present on a set of intentionally poorly crafted PHP applications. There are vulnerabilities of various difficulty levels, ranging from very simple basic ones to more complicated multi-step ones that require a deeper understanding and longer development background to be exploited successfully. This workshop includes an introductory part after which we’ll be focusing on actually hands-on exploiting the applications either by ourselves or in small groups. Learn hands-on how the most common mistakes that PHP developers make while developing web applications escalate into full-scale breaches and compromises. Gain an in-depth understanding of these vulnerabilities, and will ultimately be much more capable of protecting your applications from being hacked in the future. Once you know the basics of hacking PHP applications, you’re much less likely going to fall into these common security pitfalls in your future projects. This workshop is intended to run either on a Linux machine (Kali, Arch, Ubuntu, Debian, or similar will do, can be in a VM as well) or on a recent version of macOS. The workshop is intended for people that have previous professional PHP development experience, and preferably basic understanding of Linux OS, command line, and TCP/IP networking basics.

Hands on Docker – Launch your own LEMP or LAMP stack
Workshop by Dana Luther in Tutorial rooms (3 hour)

In this tutorial we will go over setting up a standard LEMP stack for development use and learn how to modify it to mimic your production/pre-production environments as closely as possible. We will go over how to switch from Nginx to Apache, upgrade PHP versions and introduce additional storage engines such as Redis to the equation. We’ll also step through how to run both unit and acceptance suites using headless Selenium images in the stack. Leave here fully confident in knowing that whatever environment you get thrown into, you can replicate it and work in it comfortably.

Getting started with event-sourcing
Workshop by Tim Huijzers in Tutorial rooms (3 hour)

Event-sourcing is hard? Well it is, just like creating your first CRUD system was hard when you first started. It’s a different mind-set you need to get before you can really have fun with it. In this workshop I get you through the basics and get you ready to fill in the rest. We will be building a system with the help of prooph to get a good idea of what event-sourcing is, what you can do with it and when you want to use it.

Code review
Workshop by Damien Seguy in Tutorial rooms (3 hour)

To improve your code base, you run an audit. Now, with so many diagnostics, the situation appears to be overwhelming. If you have a mere million lines of code, it may display thousands of errors, in various orders. And with that, the market leaves no time to reduce technical debt before the next feature: we’ll do it when pressure gets lighter, right? WRONG! Code quality starts with a daily review. Learn how to navigate in the results of code audits that actually find more issues than you want. During this workshop, we’ll check PHP classic traps, architecture errors, security vulnerabilities and logical bugs. We’ll see how to detect those bugs, how they happen, and how to prepare a fix (or not). By the end, you’ll be able to set up your own coding reference, the one that reflect your style of coding in your projects.

Deploying your first Micro-Service application to Kubernetes
Workshop by Bastian Hofmann in Tutorial rooms (3 hour)

Kubernetes is a very powerful container orchestration platform that is quickly gaining traction and gives you lots of benefits in deploying, running and scaling your microservice web application. But it has also a steep learning curve. In this workshop you will deploy your first application which consists of multiple Micro-Services to Kubernetes and learn how you can use persistent storage and service meshes and set up sensible monitoring.

A practical introduction to Domain Driven Design
Workshop by Joop Lammerts in Tutorial rooms (3 hour)

More than just good code, DDD is about language. Language that your product owner and stake holders live. Language that your work must embody. Language your code should speak. In this workshop we’ll learn how to make our code speak the language of our clients. We will gracefully evolve our understanding from nothing to something and learn to write code that radiates our understanding of the problem. If you want to have better conversations, make more useful models and write better code, then this is the workshop for you. Topics include: Out-of-the-box thinking and modelling Clean language essentials Matrushka doll design Lot’s and lot’s of DDD

Decoupling from infrastructure
Workshop by Matthias Noback in Tutorial rooms (3 hour)

Most application code freely mixes domain logic with infrastructural concerns. Models are directly tied to the relational database of the project, use cases are inseparable from their web controllers, and external services are used without an appropriate abstraction. This limits your ability to design the application in a domain-driven, test-first way. What we need is a way to separate core code from infrastructure code. And that’s surprisingly easy. All the design patterns have already been invented for that. Until we run out of time, we’ll keep (re)discovering patterns like Controller, Application Service, Entity, Read Model, Domain event, and so on. These patterns can be used to establish a testable, portable application core, with a focus on behavior, instead of data.

A storm is brewing
Workshop by Chris Riley in Tutorial rooms (3 hour)

You’ve just stepped out of the third product meeting this week and still have no clear idea about how the new feature that the product owners are so excited about is supposed to work but you are clear on one thing: this feature will be make or break for the company and it is important to get it right. Event storming (otherwise known as attack of the post-it notes) is a relativity new technique for exploring and modelling a problem as a group. It is a valuable technique which everyone on the development team, not just the software engineers, can benefit from. During this workshop we will use event storming to explore a sample domain and produce a model based on the key domain events. We will then look at how this model can be refined and turned into a working piece of software.