Join us for 2 full days of Insights, Inspiration & Exclusive talks around PHP and Web Technology!
Moving Forward with Legacy Code, Part I: The Mikado Method
Workshop by Matthias Noback (3 hour)
Yes, progress is possible. Even in the worst legacy code projects. Yes, you'll need courage, and discipline, but when you stick to the plan, you can make really big changes. In part I of this tutorial we'll practice these virtues by applying The Mikado Method, also known as: Just Do It, or Break things fast (but learn from it). This method can be applied in the small and in the large What you'll learn from this talk: - What the Mikado Method is, - How it can be used for small to medium scale changes, - How it can be used for bigger changes.
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!
Moving Forward with Legacy Code, Part II: Refactoring tools
Workshop by Matthias Noback (3 hour)
Yes, progress is possible. Even in the worst legacy code projects. Yes, you'll need courage, and discipline, but when you stick to the plan, you can make really big changes. In part II of this tutorial (you don't necessarily have to attend both parts by the way) we'll look at improving your PHP toolchain so you can make amazing progress in a short amount of time. Switching frameworks, upgrading to new PHP versions, all of that is just the beginning. You can improve the design of your application at the architecture level, supported by Rector for automated refactorings and PHPStan for code analysis. We'll find out that you no longer need to write tests before refactoring, but that you can write tests for the refactoring logic yourself and be done. The dream of every legacy developer (well, my dream, at least). This workshop can be considered a part II of the "Moving Forward with Legacy Code, Part I: The Mikado Method" workshop. However, it isn't necessary to follow both. Both will be useful when attended on their own. What you'll learn from this talk: - How to safely make many small changes to legacy code using Rector, - How PHPStan will help you spot mistakes, - How to test refactoring logic before performing it on the entire project.
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
Event Related by Cal Evans (15 minutes)
Opening of Dutch PHP Conference 2021 - Online Edition
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
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
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?
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)
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
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
Event Related by Cal Evans (15 minutes)
Closing of Dutch PHP Conference 2021 - Online Edition