co-authored by Vincent Lepot, Loic Doubinine, Cédric Conversin, Anthony Legros
What is Forum PHP?
The Forum PHP conference, which is organised by the AFUP (Association Française des Utilisateurs de PHP — the French association of PHP users) returned for its 23rd edition, and for the second year in a row at Disneyland Paris’ Art of Marvel Hotel on October 11th-12th, 2023! We were looking forward to taking part in the event as a Silver sponsor, with a stand in the hall.
If you’re not familiar with the conference, it’s the largest gathering of the French-speaking PHP community. Over the course of the two days, more than 600 people were able to attend around thirty conferences divided into two parallel tracks, and participate in a community evening, sponsor demos, a Lego fresco and our very own music quizzes.
Our favourite conferences
We won’t summarise the thirty or so talks here as they will be available for replay in a few weeks time on the AFUP Youtube channel. Instead, we’ve put together a small selection of our favourite topics.
Day 1
“Single Sign-On (SSO) : Simplifiez et sécurisez l’authentification dans vos applications PHP”
(“Single Sign-On (SSO): Simplify and secure authentication in your PHP applications”)
by Olivier MAIRET, Developer PHP at OpenClassrooms
In this talk, Olivier introduced us to the various existing authentication protocols such as Oauth2, OpenId Connect and SAML. The B2B development of OpenClassrooms required the implementation of an authentication protocol, and the choice fell on SAML 2.0.
Its ease of configuration with three popular extensions available and its security through data encryption from the very first exchange enabled them to meet the initial requirement.
“ReactPhp, Amp, RevoltPhp: comparatif des frameworks asynchrones”
(“ReactPhp, Amp, RevoltPhp: comparing asynchronous frameworks”)
by Benoit VIGUIER, Senior Developer at Lendable
Benoit presented us with a comparison of the three most popular asynchronous PHP frameworks: ReactPhp, Amp and RevoltPhp.
Comparing the different syntaxes and behaviours — with the use or not of Fibers — and the state of the community behind these three solutions, Benoit gave us a concrete example with the use of several simultaneous HTTP calls. Finally, he explained to us why he would prefer one or another solution if he were to start implementing asynchronous services.
“J’ai créé un service SaaS, voyons ce qu’il ne faut pas faire”
(“I created a SaaS service, and here is what you shouldn’t do”)
by Gregory Planchat, CTO at Gyroscops
This talk was an experience feedback on the migration of a service to the Cloud. Grégory went through a lot of steps and errors that led him to define a set of principles for anyone who would like to migrate to the Cloud (some of these guidelines are valid even for non-cloud-based projects):
- Adding a new technology in a project is very impactful, even on a non-technical level: consider the human and financial cost when doing your technology watch.
- A choice of technology is very structuring. It’s very complicated to revert to another solution afterwards.
- Don’t adopt technologies because they are fancy and trendy for you would expose yourself to the risk of jeopardising your project.
- Reduce the toil of your workflow (such as the deployment step) by creating your own tools.
- Since the human aspect plays a key part in the success of your project, you must support your teams in the adoption of the new technology:
– Create a proper onboarding. Grégory mentioned that pair programming is the best method to spread knowledge and best practices.
– Create a solid set of documentation. - Pay attention to the observability of your code (no silent exception catch).
- Only adopt tools that you really need for some of them are overkill.
- Explain your technical choices in specific documents called ADRs (Architectural Decision Records), and have them read and challenged by your teams.
- Time is the sinews of war! Only concentrate on essential things. To succeed in developing a new project, you should follow the order below:
– Focus on your POC,
– Once the POC is done, focus on your MVP,
– Once the MVP is stabilised, focus on your MSP (Minimum Sellable Product).
“Les journalistes se moquent des logiciels libres, je vous explique pourquoi”
(“Journalists do not care about free softwares, I’ll explain why”)
by Loris GUÉMART, Journalist at Arrêt sur images
To finish the first day of talks, we attended a single track with an honoured guest: a journalist from the “Arrêt sur images” media. Loris Guémart and “Arrêt sur images” usually analyse the media coverage of various topics. He made no exception there and explained why journalists don’t care at all about free softwares.
Loris started by doing a global press review to insist on the fact that there is absolutely no coverage of the Forum PHP 2023, or any previous edition for that matter. He continued by doing the same for free software in general to eventually state the obvious (at least, after reading the title of the talk): no one writes about free software and the few exceptions are not really the best examples. Even in the specialised press, only a small part is about free software.
After that, Loris simply explained that journalists are just people like anybody else. We all live in the same world and free software is not the norm today. We would like it to be the opposite, but it is not. He specifically talked about his own situation, as an advocate of free software. He and his journal want to promote free software, but not all journalists want to talk about it or even agree on the importance of the topic.
How do we, tech people, change that? Or at least, how can we try to influence journalists to write about free software? After trolling about giving journalists a free helicopter ride to the Forum PHP so they cover the event, and taking the example of Cochonou at every Tour de France, he talked about the more interesting topics that are tackled in such conferences. He specifically mentioned the journalistic interest of talks like “Femmes et numérique : enjeux et solutions” (“Women and digital technology: issues and solutions”), or “Burn-out dans l’IT, le commencement” (“Burnouts in IT, the beginning”), “Équilibre pro/perso : expérimentations autour du temps de travail et de la rémunération” (“Professional-personal balance: experimenting with working time and salaries”). All of them were scheduled at the event.
The idea would be to include more engaging topics for journalists, and for anyone basically. This would indirectly shed some light on the rest. With more and more coverage, trends may change over time. Of course, there is no magical solution — except maybe the helicopter ride, but that may not be very cost effective, to say the least.
This talk was part of the “outside the box” selection, which is refreshing to attend. It allows you to go beyond your technical stacks and discussions, and closing the day with such topics is a great idea to start new conversations between attendees. Kudos to the organisation for that 😉
Day 2
“Changements de comportements en PHP 8”
(“Changes of behaviours in PHP 8”)
by Damien SEGUY, CTO at Exakat
Damien didn’t talk much about elephants although they did accompany him on stage to help him present the subject. PHP 8 induced many behavioural changes to the PHP language that have not always been indicated in the documentation.
Thanks to multiple examples on array sorting and string/integer comparisons, we will retain from his conclusion that it is important to run unit tests on future versions to detect and anticipate any changes, use universal notations, equip yourself with a static code analyzer, etc.
“Index Wars : Le pouvoir des Jedi des Index dans l’univers de Postgres”
(“Index Wars: The power of Index Jedis in the Postgres universe”)
by Laeticia AVROT, Field CTO at EDB
Laeticia successfully deep-dived into the vast topic of indexes in Postgres. Starting with a relatively succinct but complete introduction about what an index is and how it is used, she then delved into more complex subjects. We’ve learned about a multitude of new different approaches to customising and optimising our future indexes. Laeticia provided us with a broad overview of what can be done and gave us all the keys to explore further.
“You Build It, You Run it, l’observabilité pour les devs”
(“You Build It, You Run it, observability for devs”)
by Smaine MILIANNI, Freelance Senior Developer at Yousign
As a passionate developer, Smaine detailed what is observability, its three pillars (metrics, logs, traces), and why a team dedicated to the developer experience can be really useful in a company in order to improve velocity and quality. A development is not finished once the code is pushed to production. You also need to know whether it works well… and when and why it does not. A very useful talk if you are not already aware of the benefits of observability.
“La mutabilité m’a tué, l’immutabilité m’a sauvé”
(“Mutability killed me, immutability saved me”)
by Sadetin Eyili, Senior PHP Engineer at Ekino
For his first public talk, Sadetin chose the topic of immutability. He explained how a mutable object (namely a DateTime) in his code had numerous side effects: a change to one object had an effect on another, which at first made him confused.
He understood his error and went on to clone all objects when immutability was needed… until he realised that this method degraded the DX by overloading the code with cumbersome cloning everywhere.
Then he discovered the ImmutableDateTimeObject, and the concept of immutability, and found ways to implement it:
- the new PHP 8 “readonly” feature (even if it does not guarantee immutability, it helps),
- “wither” accessors to replace setters.
To sum it up, when coding, you should start with the idea that your objects are immutable, and then set them as mutable only when needed.
“Open/Closed principle : on a dit étendre, pas extends !”
(“Open/Closed principle: we said extend, not extends!”)
by Thomas Dutrion, CTO at Echos Annonces & Freelance
Thomas started with the SOLID principles and focused on the Open/Closed principle. Historically, it was implemented in OO by inheritance but it had an impact on both the single responsibility and encapsulation principles, not to mention it can also lead to a complex inheritance tree when your needs get bigger.
Thomas then praised the composition mechanism over inheritance. Composition has the advantage of being more readable, and it respects the SRP and the encapsulation principle. He introduced some design patterns such as the Decorator, the Observer, and callbacks.
Finally, he pinpointed that the use of “switch” and “match” operators are often the signs of a closed code, and promoted the use of collections of handlers instead, which is eased by the usage of a dependency injection.
“Femmes et numérique : enjeux et solutions”
(“Women and digital technology: issues and solutions”)
by Isabelle COLLET, Educational Science professor at the University of Geneva
A very interesting talk (as often the case with non-technical talks at Forum PHP) about the place of women in the digital world. Historically, women were much more present in technological companies. But at some point, in the early 80s, their number decreased. Isabelle Collet summarised the research studies that explain why the situation changed, and gave us clues about what can be done to restore parity.
Beyond conferences
On the Deezer stand
We chose to support the community as a Silver Sponsor with a stand for the second year in a row. It was an opportunity for us to talk to participants about the PHP ecosystem and to follow the conferences. We also hosted four multiplayer music quizzes each day to liven things up in the conference hall.
Discussions with visitors
The two days were packed with encounters with conference attendees, many of whom wondered what role PHP plays in the Deezer tech ecosystem. We also discussed some aspects of the product such as Flow and music quizzes.
Music quiz sessions
We started preparing goodies and music quizzes several months before the event.
Participants put their music knowledge to the test on themed playlists like Disney, video games, elephants, anime, etc. Attendees were quite shy on the first day but the few people who dared to join us for a quiz very much appreciated the experience. We were happy to welcome more people on the second day, with more than 15 players per session.
Massive thanks to our colleague Pierre Bertrand, who knitted elephant key rings especially for the occasion.
AFUP
Community evening
The theme of this year’s community evening was a badge-scanning game that consisted in finding all the members of your assigned team. It was a chance for people to take a step towards each other in the Marvel Hotel, and even in Disney Village, where the whole community gathered to toast new encounters and reunions.
The winners of the game were the “Axolotl” team — were you one of them?
Collaborative Lego fresco
Once again, AFUP offered a collaborative Lego fresco activity. After the local branches theme last year, this year’s theme was SUPHPERHERO. It took visitors two half days to complete the fresco, piece by piece during breaks. We participated and loved it. What about you?
In a nutshell
What a top AFUP event for the French-speaking PHP community! A huge thanks to the organisers, speakers, sponsors and visitors for these two magical days at Disneyland Paris’ Art of Marvel Hotel. We were delighted to chat with all of you on the Deezer stand, and to share some suspenseful music quizzes!
See you in 2024 for the next edition?