The Dutch PHP Conference is an annual web technology conference around PHP technology.

Friday 13th October 2023

Talk by Caneco (15 minutes)

Opening of Dutch PHP Conference by Caneco

09:45 Building the World: the story behind Wolfi, the Linux undistro built for containers
Talk by Erika Heidi (45 minutes)

"As the container ecosystem matures, there is an increased need for new standards and runtime environments that take into consideration security and provenance concerns, driving the next generation of tools and recommended practices to build container images. In this talk, you'll learn everything about Wolfi, a Linux ""undistro"" built for containers. We'll see why it was created and how it is maintained, using the Wolfi PHP package to demonstrate our open source apk build system." What you'll learn from this talk: This talk will give a high level overview of Wolfi telling the story behind it, why it was created, how it is maintained, telling my experience getting involved since the beginning, and building all their PHP packages.

Our journey from Gitflow to Trunk Based Development
Talk by Ludovic Toison (45 minutes)

"Having worked with Gitflow for years, we have recently transitioned to a Trunk Based Development approach to accommodate the expanding needs of our product. During this session, we'll quickly go over the differences between both branching strategies before diving into why we switched. We'll then explore the steps we undertook to make the transition possible: We'll discuss how we restructured our software development lifecycle, the initiatives we set up to foster the adoption, how did we use Feature Flags to achieve Continuous Deployment, how Feature Environments and Non-Regression Tests upped our confidence in shipping to production every day, and finally we will share the mistakes we made along the way. By the end of the presentation, you'll have a comprehensive understanding of Trunk Based Development helping you to decide whether it's appropriate for your engineering teams." What you'll learn from this talk: Like many organizations, our product began with a small team using a Gitflow strategy that gave us a high level of control. But as our team grew, our development speed started to slow down. We asked ourselves: why does it take so long to deliver a bug-free feature? Why are there often dependencies between team members? Why is it so difficult to rollback a broken release? Why hasn't lead time diminished despite adding more developers? Join us as we share our experience transitioning from Gitflow to Trunk-Based Development. We'll talk about the challenges we faced and how we eventually achieved success with this branching strategy.

Generics aren’t coming
Talk by Brent Roose (45 minutes)

Generics in PHP. Many of us want them, but chances are very small we'll ever get them. In this talk, we'll explore the benefits of generics, what's possible in PHP today, and also the hurdles to overcome. What you'll learn from this talk: - The basic concept of generics - Intro to static analysis - Some insights into PHP's internals - Ideas about how PHP could evolve in the future Slides:

Internships - MBO / medium level education
Talk by Sophie Fischer (45 minutes)

In 2020 we started hiring interns from the Dutch MBO schools to build our development team. Spoiler alert: This has been an extremely succesful strategy. In this talk I will share our experience with 15 interns in 3.5 years. What you'll learn from this talk: Five reasons to hire interns, five tips how and who to hire, five technical strategies to get these young people contributing to the code-base, five pitfalls and five ideas for how we as PHP community can grow by offering internships and working together.

14:00 How to eat an ElePHPant: How to modernize your legacy PHP Applications
Talk by Ayesh Karunaratne (45 minutes)

A new PHP version is released every year, that brings new features, removals, as well as breaking-changes that can be overwhelming for PHP applications that didn't keep up to date for a while. Still running that PHP 5.4 application with no Composer autoloading in sight? Stuck in PHP 7.4 because PHP 8.0 is too steep of a jump? Tired of "if it works don't touch it" mantra? This talk might be just the right fit! The more PHP evolves, the harder it can get to keep up with the latest changes in PHP. At the same time, almost every new PHP version brings performance and security improvements that legacy applications miss. This talk borrows the wisdom of Desmond Tuto on how to eat an elephant ElePHPant: A bite at a time. Rewriting a PHP application entirely, especially when it's a legacy PHP application with a lot of edge cases can end up in a worse code, so the ideal way of modernizing a PHP application would be selectively upgrading it. Taking examples from Drupal 7's major upgrade to the modern Drupal code base today, as well as other practical and real-life use cases, this talk aims to be actionable, practical, and inspiring. Some of the approaches and steps discussed in this talk include: - Gradually adding proper error and exception handling - Integrating a Dependency Injection Container - Moving away from static PHP URLs and web-server URL rewrites to a single route handler design - Incorporating Composer while getting rid of random scattered `include/require` directives - Configuration management and separation - Making code composable - Using Object-Oriented Coding patterns where appropriate - Gradually integrating templating systems Additionally, this talk also discusses about lengthening the lifetime of legacy PHP applications in case the applications are not planned to be upgraded, and are only necessary to be run as long as they securely can be. Most of the inspiration for this section of the talk is from the speaker's blog post on [How to extend lifetime of legacy PHP applications]( What you'll learn from this talk: How to upgrade legacy PHP applications without having to rewrite them entirely. It introduces some of the more recent concepts and design patterns that PHP 5-era PHP applications did not have back then, and discusses how to incorporate them into existing applications almost seamlessly.

15:00 Making PHP Smarter: Introducing AI into PHP Applications
Talk by Adam Englander (45 minutes)

Gain a practical understanding of how to integrate AI capabilities into your PHP projects with examples from the leading sources of hosted AI: OpenAI and Hugging Face. Armed with this knowledge, you can unlock new possibilities for intelligent, dynamic, and user-centric PHP applications that leverage the power of Artificial Intelligence. So, join us for this transformative journey as we bridge the gap between PHP and AI, opening the door to a world of smarter and more innovative web applications. What you'll learn from this talk: Introduction to AI in PHP: - Understand the basics of Artificial Intelligence and its potential applications in PHP development. - Explore the benefits of integrating AI into PHP applications, such as enhanced user experiences and smarter decision-making. Getting Started with OpenAI API: - Setup and authentication: Learn how to set up your OpenAI account and obtain the necessary API credentials. - Exploring OpenAI capabilities: Dive into OpenAI's powerful language models and their potential use cases in PHP applications. - Practical code examples: We'll walk through step-by-step code examples on how to integrate the OpenAI API into your PHP projects. Leveraging Hugging Face Inference API: - Introduction to Hugging Face: Discover the Hugging Face model repository and its extensive collection of pre-trained AI models. - Utilizing the Inference API: Learn how to use Hugging Face's Inference API to run AI models in real-time. - Code examples: We'll showcase how to integrate Hugging Face's Inference API into your PHP applications for tasks like natural language processing, sentiment analysis, and more. Enhancing PHP Applications with AI: - Sentiment Analysis in PHP: Implement a sentiment analysis module in PHP to gauge user feedback and sentiments. - AI-powered Chatbot: Build an intelligent chatbot using OpenAI's language model, enabling interactive and dynamic conversations. - Smart Content Generation: Explore how to generate dynamic content for web applications using Hugging Face's text generation capabilities. Best Practices and Considerations: - Managing API Requests: Optimize and manage API requests efficiently to minimize latency and cost. - Error Handling and Resilience: Implement robust error handling and fail-safe mechanisms when working with AI APIs. - Data Privacy and Security: Discuss best practices to ensure data privacy and security when dealing with AI services. Future Trends and Innovations: - AI Advancements: Gain insights into the latest AI trends and how they can shape the future of PHP development. - Advantages of AI-first PHP: Understand the potential benefits of adopting an AI-first approach in PHP application development.

Talk by Caneco (15 minutes)

Closing by Caneco