phpday 2021 Digital Edition

Tuesday 8th June 2021

10:00
5
15 years in the life of elephpant
Talk by Damien Seguy (1 hour)

The last ones who told me I could learn from a plush toy were my daughters. Of course, I acknowledged. Yet, it dawned on me: after ten years of life, the PHP plush has achieved so much! It went to the White House and Antarctica; it spawned forty thousand offspring and a jet-set generation of collectors; it built bridges within and outside the community. The PHP elephpant is the living symbol of the PHP community, straight from the genius of Vincent Pontier. It is a whole character, running across the world and changing colors all the time. Everybody need elephpant love ! Nowadays, it is alive and kicking. It still reviews my code, casting an odd look to me, once in while. No one can have enough elePHPant.

11:15
3
What's new in PHP 8.1
Talk by Derick Rethans (1 hour)

During this presentation, we are going to look at the new features that are going to be introduced in PHP 8.1. Join me to have a look at how the type system is strengthened with Enumerations and 'never', Fibers, a new closure syntax, and other new smaller features. At the end you will have a good understand about all the new and exciting features that are likely going to be part of the PHP 8.1 release.

12:15
4
Sustainable open source contributions in your business
Talk by Stefan Koopmanschap (45 minutes)

A lot of companies think contributing to open source is hard, but is it? In this talk you will hear about how Ingewikkeld, a small Dutch development and consultancy company, has built a sustainable model for both making a profit and also doing solid contributions to open source projects.

14:30 PHP ❤️ types
Talk by Marco Perone (1 hour)

PHP is widely known for its dynamic typing features. Still in its latest releases it introduced many features for improving the typing of our applications and many are already planned for future versions. Yet, comparing for example with what Typescript provides for the Javascript ecosystem, many relevant features are still missing from the language. Luckily, in PHP we can emulate features like union types and generics using libraries like Psalm or PHPStan. In this talk we will see how we can use the type system provided by such tools not only to prevent bugs, but also to help us modelling our domain making its invariants explicit in the type system itself. If you are interested in creating safe and reliable software, let's see together how types can help you!

15:30
2
PHPUnit 10: The new Event Subsystem
Talk by Arne Blankerts (1 hour)

First, there was the TestListener interface for extending PHPUnit. But it was abused, because it allowed more than just listening. Then came the TestHook interfaces, but they were inconvenient to use. Now PHPUnit 10 introduces a new event system for developing extensions and for in-depth analysis of your testsuite, hoping to overcome the shortcomings of its predecessors. Join Arne Blankerts, one of the two developers behind PHPUnit's new event system, and learn how easy it can be to extend PHP's popular test runner as well as getting new detailed insights to the test execution.

16:45
5
Never* use arrays
Talk by Larry Garfield (1 hour)

PHP loves its arrays. Arrays are the uber-data structure. They're a list, a map, a stack, a queue, everything in one! Which is the problem. Modern PHP grossly over-uses arrays. In most cases there are better options today, and when you find yourself reaching for 'oh I'll just make this an associative array', stop. An extra 60 seconds of thought and code will often give you a more readable, faster, more memory-efficient, more flexible alternative. Classes, iterables, and collections can and should replace arrays in most of your day to day coding. This talk will go through what PHP arrays actually are (hint: they are not, in fact, arrays at all), why they're so problematic, and what to do instead. By the end, you should find yourself (almost) never reaching for arrays to solve a problem.

Wednesday 9th June 2021

10:00 Security: From basic principles to PHP specifics
Talk by Alexander Makarov (1 hour)

During numerous code reviews I've found that many projects sharing alike security flaws despite being developed by experienced teams. In the talk I'd cover both security basics, PHP specifics and some extras such as common errors in server configs.

11:15 Introduction to Timeseries Databases
Talk by Lorna Mitchell (1 hour)

As our applications gather more and more data, ever more quickly, both developer and application can become overwhelmed in no time. Recognising when data would be best handled as time series data (spoiler: events, logs and metrics all work pretty well), and knowing how to adapt your application to work this way can really help. This session introduces time series data concepts, and discusses the situations where the aptly named databases are a useful tool - as well as when they are not! You will learn about handling large data volumes and some of the open source tools available, such as InfluxDB and M3DB. We'll look at examples of implementing time series databases in real world applications, and give resources that you can try out yourself.

12:15
3
Debugging With PhpStorm And Xdebug
Talk by Christoph Rumpel (45 minutes)

Debugging with Xdebug is not everyone's favorite topic. It takes some time to get it all set up, and then you also need to get familiar with the given features and make it work with PhpStorm. Still, Xdebug provides a lot for debugging your applications, and you shouldn't miss out on that. Let me demo you the excellent combination of Xdebug and PhpStorm and show you how it will boost your debugging skills. Slides: https://speakerdeck.com/christophrumpel/debugging-with-phpstorm-and-xdebug

14:30
1
Programming Elasticsearch with PHP
Talk by Enrico Zimuel (1 hour)

In this presentation, we will show how to use Elasticsearch with PHP. We will give a short introduction to Elasticsearch showing how PHP developers can benefit from its usage. We will present how to connect to Elasticsearch, how to index data, how to search and aggregate information. We will also present some advanced features, such as fuzzy search, highlighting and the recent schema on read available from Elasticsearch 7.12.

15:30
4
Rewriting Legacy Code
Talk by Anna Filina (1 hour)

Did you ever have to maintain a 15-year-old application? Dead code everywhere, hard dependencies, null pointer exceptions, database queries mixed with HTML, no tests and most libraries have been discontinued. This presentation will show you how to modernize your application using a variety of strategies. You will learn how to avoid common pitfalls, automate legacy testing, manage your development environment and overcome various challenges that arise from dealing with legacy.

16:45
2
Communication - the Crucial Key to Success in Uncertainty
Talk by Sabine Wojcieszak (1 hour)

Today we all live, work and strive for success - in a world full of uncertainty, the VUCA world. As things around us are changing ever faster, we do not have time to waste with lots of misunderstandings caused by poor or insufficient communication and lack information flow. This applies to managers and leaders as well as employees, to developers as well as operations or support. Communication comes into play long before a project even starts and is the crucial key to success along the whole value stream - within the teams, the companies and also with externals. All agile methods, frameworks and methodologies will only work well with the right communication. This talk will not only show which impact poor communication has on motivation, on solutions and on success; it will also show the importance of good communication for business agility. Furthermore you will learn about helpful techniques for better communication and more shared understanding. Even if you need more communication in some companies, it is better to pay attention to more quality in it. Believe it or not, this will save time in the end! So if you want to be successful in the uncertainty of a fast changing world, take a closer look on your communication habits and start to improve for being better!