Join us for 2 full days of Insights, Inspiration & Exclusive talks around PHP and Web Technology!

Thursday 17th June 2021

10:00
2
Going Serverless with PHP & Bref.sh - Mike Lehan
Workshop by Mike Lehan (3 hour)

Serverless is more than just a buzzword, it's an environment where developers are in charge, doing away with the constraints of CPU power and scaling... mostly. Until recently PHP developers were left out of the most established serverless platform, Amazon Lambda. Since 2018's release of Lambda Layers however, a new tool called Bref.sh exists to let you run workloads serverless style. This workshop will cover how to start using Bref.sh, and its main areas of operation (functions, HTTP APIs and frameworks). We'll build some basic applications but also look at how you can migrate your existing workloads. With serverless code comes the need for serverless data storage, so we'll also introduce Amazon DynamoDB, allowing us to scale our whole application seamlessly! What you'll learn from this talk: - How to configure an environment to develop with Bref - The best way to test and deploy Bref applications - How to fit existing codebases into Bref - The basics of storing data in DynamoDB, for a fully serverless stack!

1
MySQL 8.0 Indexes, Histograms, and Other Ways to Speed Up Your Queries
Workshop by Dave Stokes (3 hour)

Nobody complains that the database is too fast. But when it is s-l-o-w people trying things that maybe the should not. Add an index and things are great for a short while before they get slower. Or you want to try a histogram but have no clue where to start. This talk is an explanation of how indexes really work, why histograms are great for some types of data, how to examine a query plan (what the database optimizer wants to execute to get your data), and why the optimizer can be easily fooled into making bad choices. Plus you will get introduced to some other ways of making your queries run faster. What you'll learn from this talk: - What is a histogram and what is used for. - How indexes really work in MySQL - Why the MySQL optimizer is like a GPS and why old information can skew performance

14:00 Diversity and Inclusion in Tech
Event Related by Ayesh Karunaratne, Francesca Marano, Juliette Reinders Folmer, Koen Cornelis, Zan Baldwin (1 hour, 30 minutes)

* Talk "You are not the user" by Koen Cornelis If you work in tech, chances are you noticed that it's quite a homogenous group. So how come there are so few women & people of colour (to name but two underrepresented groups)? Do you really have to be a special kind of stupid to be a developer? Or could everyone enjoy the sweet bliss that comes from banging their head in frustration for hours, trying to debug the code, only to realize in the end they forgot a semi-colon? This talk focuses on Diversity and Inclusion from a usability/accessibility perspective. Take a ride and find out why you are not the user; and how that knowledge can help us shape a more inclusive environment. * Panel Discussion "Diversity and Inclusion in Tech" with speakers to be announced We will turn our spotlight on some well respected speakers in tech to start a panel discussion with topics like; how the panel thinks conference organizers can contribute in a diverse speaker line-up, how to create diversity in talk submissions, what is the panels opinion on the current situation, what has changed throughout the years and what are the most important changes to be made in Tech?

Friday 18th June 2021

09:30
3
Opening
Event Related by Cal Evans (15 minutes)

Opening of Dutch PHP Conference 2021 - Online Edition

09:45 How'd we get here? A guide to Architectural Decision Records
Talk by Rafael Dohms (45 minutes)

Every day developers will make an uncountable number of decisions while working or run into past decisions that we do not fully understand. How can we organize all this content and simplify the sharing of architectural knowledge? Let's explore ADRs and how they can support decision making and sharing on various levels. What you'll learn from this talk: - ADRS: formats, how to fill them in, when, why - A bit more on how to organize the team around this

10:45 PHP Enums
Talk by Ayesh Karunaratne (45 minutes)

PHP 8.1 brings Enums, one of the most requested features in PHP. Enums, or Enumerations, allow creating strict and type-safe structures for fixed values. An Enum structure can hold a number of values that can also be backed with integer or string values. In this comprehensive session, we will discover what Enums are, why they are useful, how to apply them on our applications including Drupal, and things to watch out for when using Enums. This session is for those who are familiar with modern PHP practices such as Object Oriented Programming, and principles such as Liskov Substitution principle. A quick introduction will be given to catch up to speed, but familiarity with such concepts can help a lot. What you'll learn from this talk: - What are Enums - Why Enums are useful - How to use Enums - Migrating from magic constants/values to Enums - Backed Enums and storing/fetching Enum values with a database - Using Enums in a Drupal context - Caveats when using Enums

11:45
5
Securing PHP APIs with Decentralised Identity Tokens
Talk by Mohammad Shahbaz Alam (45 minutes)

The APIs keeps changing, and the programming languages like PHP and Frameworks like Laravel are shifting the paradigm of API consumption. We often dedicate a lot of time to craft powerful APIs but overlook proper security measures. Setting up an authentication layer is, without a doubt, one of the most challenging yet necessary tasks within any web application. In this talk, we’ll look at proper ways to secure our PHP APIs with Decentralised Identity Tokens. We’ll go from learning what Decentralised Identity standards are, how the users’ identities are self-sovereign by leveraging blockchain public-private key pairs, why they’re the future of API security, and to put theory into practice we will build a real-world implementation using PHP where I’ll show common best practices. What you'll learn from this talk: - How to write efficient and highly scalable APIs in PHP. - What is Decentralised Identity Token? - How the user's identity is self-sovereign? - A better approach in making the Internet secure by not using passwords - How to use blockchain's public-private key in the user authentication?

13:00 Beyond Relational: Data storage for modern applications
Talk by Mike Lehan (45 minutes)

A relational database has long been the go-to choice for PHP application developers, but as applications grow the data doesn't always fit the relational model. Perfect normalised data structures have their place, but in the world of rapid delivery, cloud computing & microservices developers need more in their toolbox. This talk looks at when you might want to try a different data store, and how you'd look to build out or migrate to a new service. We'll look at queues, key-value, document stores primarily (with some specific examples in Amazon DynamoDB, MongoDB and Redis). We'll also look at some emerging database types such as graphs and ledgers. What you'll learn from this talk: - How to identify aspects of a relational database that would be better suited elsewhere - What's the difference between a key-value and document store? - Are there any pitfalls in a service like Amazon DynamoDB? - Can you fit the word "blockchain" into a talk about databases? (hint: kind of)

14:00 A short tale about state machine
Talk by Łukasz Chruściel (45 minutes)

Entities lifecycle is usually something more than create and delete. Models with which we are working on day to day basis change their state under some business circumstances. State machine patterns can be a powerful allay when solving this kind of problem. How does it look like? What are the pros and cons of state machine usage? What are the things that we should be beware of? I will answer these questions during my talk, together with practical differences between the most popular implementation. What you'll learn from this talk: - Theoretical background of the pattern itself - Major differences between most popular implementations - Practical examples implemented in all examined libraries

15:00
8
HTTP Patterns: PSR 7 & 15 By Example
Talk by Tim Lytle (45 minutes)

Chances are your code already uses one of the HTTP PSRs in some way. In this 'no slides, just code' session we'll take a hands on look at how HTTP Messages (PSR-7) and HTTP Handlers (PSR-15) work, and how they can be properly leveraged. HTTP messages provide a considerable advantage over global variables, and their immutability actually makes it easier to confidently modify an incoming request or an outgoing response in your web application. HTTP handlers are a common concept in micro-frameworks, and PSR-15 provides a way to create reusable framework-agnostic code. But that's not all it provides. The HTTP handler interface can be used to inject the concept of middleware into an existing application without having to introduce a new framework. Or to easily build a lightweight application without any framework. Take a guided tour through both PSRs, and find out how you can used them effectively in your current codebase. What you'll learn from this talk: - the value in immutable HTTP Request objects - how to evolve an HTTP Request object - how to extend a library's HTTP Request object - how a middleware stack works - how easy it is to use PSR-7 & PSR-15 without any framework

15:45
0
Closing
Event Related by Cal Evans (15 minutes)

Closing of Dutch PHP Conference 2021 - Online Edition