Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions pwa/app/(common)/events/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,12 @@ export default async function Page({
p: (
props: Omit<React.HTMLAttributes<HTMLParagraphElement>, "className">
) => <p className="mb-8">{props.children}</p>,
ul: (
props: Omit<React.HTMLAttributes<HTMLUListElement>, "className">
) => <ul className="list-disc list-inside mb-8">{props.children}</ul>,
li: (
props: Omit<React.HTMLAttributes<HTMLLIElement>, "className">
) => <li className="mb-2">{props.children}</li>,
};
return (
<div className="bg-gray-100 dark:bg-blue-black">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2025-09-18",
},
link: '/con/2025/conferences/180000-requetes-par-seconde-explique-simplement/',
picture: "https://img.youtube.com/vi/6VcTZ6-IsRw/0.jpg",
speakers: [{
name: "Xavier Leune",
github: "xavierleune",
}],
video: "https://www.youtube.com/watch?v=6VcTZ6-IsRw&list=PL3hoUDjLa7eT3v5dchifeESn5Fq7jelG7&index=7",
};

# 180 000 requêtes par seconde expliqué simplement

Avez-vous déjà cherché à savoir comment pousser vos appels API jusqu’à leurs ultimes limites ? Cette conférence dévoile comment atteindre l’étonnant chiffre de 180 000 requêtes par seconde depuis un simple ordinateur portable, en plongeant dans les détails techniques de curl, HTTP, pcntl et PHP. Au-delà de la performance pure, nous explorerons les stratégies de scaling horizontal pour atteindre des niveaux de débit encore supérieurs. Des techniques d’optimisation aux décisions d’architecture, découvrez comment surmonter les obstacles courants et faire passer vos applications au niveau supérieur.

Bien qu’abordant des concepts avancés, cette présentation suit une méthode pas à pas la rendant accessible aux devs de tous niveaux.
26 changes: 26 additions & 0 deletions pwa/data/events/conference-2025-an-api-platform-odyssey.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2025-09-19",
},
link: '/con/2025/conferences/2025-an-api-platform-odyssey/',
picture: "https://img.youtube.com/vi/Tm1S3HfxLwY/0.jpg",
speakers: [{
name: "James Seconde",
github: "SecondeJK",
}],
video: "https://www.youtube.com/watch?v=Tm1S3HfxLwY&list=PL3hoUDjLa7eT3v5dchifeESn5Fq7jelG7&index=9",
};

# 2025, an API Platform Odyssey

I still remember working on a project that used a massive e-commerce Cloud Platform back in 2018. The array came back, and I loudly admitted, “what on earth does embedded mean?!”. Nobody corrected me. Nobody even knew it was the HAL standard, or what HATEOAS meant.

Fast forward to now, and anybody who wants to create an API in REST should all be using HAL standards. The drawback is: do you roll your own, do you find a 3rd party library to do it?

Step forward API Platform. Because if you’re going to code an API to HAL standards and do it quickly, this is a revelation.
24 changes: 24 additions & 0 deletions pwa/data/events/conference-a-search-for-truth.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2025-09-19",
},
link: '/con/2025/conferences/a-search-for-truth/',
picture: "https://img.youtube.com/vi/f2KunhtHiTg/0.jpg",
speakers: [{
name: "Rob Landers",
github: "withinboredom",
}],
video: "https://www.youtube.com/watch?v=f2KunhtHiTg&list=PL3hoUDjLa7eT3v5dchifeESn5Fq7jelG7&index=34",
};

# A search for truth

As systems become ever more complex, more and more “layers of truth” are added to the system (search indices, caches, read replicas, etc). How do we manage them when things go awry?

This is a talk about preventing cascading failures by treating failure as a normal mode of operation.
26 changes: 26 additions & 0 deletions pwa/data/events/conference-adopter-un-lapin.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2024-09-19",
},
link: '/con/2024/conferences/adopter-un-lapin/',
picture: "https://img.youtube.com/vi/STBly4WOmHc/0.jpg",
speakers: [{
name: "Frédéric Bouchery",
github: "f2r",
}],
video: "https://www.youtube.com/watch?v=STBly4WOmHc&list=PL3hoUDjLa7eSppJSvwSIeBexYZQWkN0bm&index=13",
};

# Adopter un lapin

RabbitMQ, vous en avez certainement entendu parler, mais franchement, ces histoires d’exchange, de queue, de binding, de topic, de fanout, ce n’est pas toujours très clair. Et de toutes façons, vous ne pensez pas trop en avoir besoin !

Pourtant, c’est un excellent outil pour déporter du traitement, comme une dénormalisation de données par exemple. Lors de cette conférence, très didactique, vous découvrirez les bases de RabbitMQ et comment l’utiliser avec Symfony Messenger et API Platform.

Vous allez enfin comprendre comment utiliser RabbitMQ et votre monde va s’éclairer, promesse tenue !
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2024-09-20",
},
link: '/con/2024/conferences/all-the-challenges-of-sylius-migration-to-api-platform-3/',
picture: "https://img.youtube.com/vi/0hcrOdQANRg/0.jpg",
speakers: [{
name: "Łukasz Chruściel",
github: "lchrusciel",
}],
video: "https://www.youtube.com/watch?v=0hcrOdQANRg&list=PL3hoUDjLa7eSppJSvwSIeBexYZQWkN0bm&index=20",
};

# All the Challenges of Sylius Migration to API Platform 3

Migrating Sylius to API Platform 3 is no small feat. In this presentation, we will discuss the many challenges we faced during this complex transition and the innovative solutions we used to overcome them. This journey began with a clear goal: to leverage the robust capabilities of API Platform 3 to improve the performance and scalability of Sylius. In this talk, I will share the critical steps we took, the obstacles we encountered, and the strategies we used to overcome these challenges.

We will address the following questions:

- What were the key technical hurdles in migrating Sylius to API Platform 3?
- How did we ensure compatibility and maintain data integrity throughout the migration?
- What were our key takeaways and best practices from this experience?

Join us to gain insights from our experience, learn about common pitfalls in such migrations, and discover how to navigate them effectively. Whether you are planning a similar migration or looking to optimize your current setup, this session will provide valuable lessons and practical tips to help you succeed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2024-09-19",
},
link: '/con/2024/conferences/api-platform-admin-the-ultimate-admin-generator/',
picture: "https://img.youtube.com/vi/UyAkN85wGNk/0.jpg",
speakers: [{
name: "François Zaninotto",
github: "fzaninotto",
}],
video: "https://www.youtube.com/watch?v=UyAkN85wGNk&list=PL3hoUDjLa7eSppJSvwSIeBexYZQWkN0bm&index=3",
};

# API Platform Admin: The Ultimate Admin Generator

API Platform comes with a powerful admin generator, now based on react-admin v5. Building admin or B2B UIs for your API has never been easier, thanks to guessers, TypeScript validation, and a very large library of widgets. It’s as if HTML had been extended with new components for filters, menus, user preferences, etc.

Even if you’re allergic to JS, API Platform Admin will dramatically boost your productivity.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2024-09-19",
},
link: '/con/2024/conferences/api-platform-des-developpeurs-d-attributs/',
picture: "https://img.youtube.com/vi/Sw2K0FZlPWY/0.jpg",
speakers: [{
name: "Clément Talleu",
github: "clementtalleu",
}],
video: "https://www.youtube.com/watch?v=Sw2K0FZlPWY&list=PL3hoUDjLa7eSppJSvwSIeBexYZQWkN0bm&index=9",
};

# API Platform, des développeurs d'attributs ?

Les développeurs et développeuses API Platform, il faut qu’on l’admette, écrivent beaucoup d’attributs. C’est même une des forces du framework : grâce à quelques (ok, parfois des dizaines) lignes d’annotations bien placées, notre application peut profiter de fonctionnalités avancées et complexes qui nécessiteraient des heures à développer intégralement.

Après un retour sur l’histoire des RFC qui ont conduit à leur implémentation en PHP, voyons ensemble comment les attributs sont gérés et interprétés dans API Platform.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2025-09-18",
},
link: '/con/2025/conferences/api-platform-jsonencoder-and-esa-for-a-skyrocketing-api/',
picture: "https://img.youtube.com/vi/2kHygcXcdQs/0.jpg",
speakers: [{
name: "Mathias Arlaud",
github: "mtarld",
}],
video: "https://www.youtube.com/watch?v=2kHygcXcdQs&list=PL3hoUDjLa7eT3v5dchifeESn5Fq7jelG7&index=14",
};

# API Platform, JsonStreamer and ESA for a skyrocketing API

When building APIs with API Platform, JSON is king — and Symfony’s Serializer is at the heart of it all. But once your API starts returning large documents (think thousands of items), performance hits hard.

This talk explores how to make Symfony-based APIs faster and more scalable. We’ll introduce the new JsonStreamer component, designed to stream JSON efficiently — perfect for large datasets and real-time delivery. Through simple benchmarks, we’ll see how streaming can dramatically improve memory usage and time-to-first-byte.

Back in API Platform, we’ll look at how JSON-LD and its complexity introduce new challenges, and how Symfony JsonStreamer’s PropertyMetadataLoader step in to help.

To go even further, we’ll look at ESA (Edge Side APIs): a pattern for breaking large JSON payloads into smaller, progressive calls, improving perceived performance and user experience — especially in high-latency environments.

Whether you’re hitting performance ceilings or just curious about modern API techniques, this talk will help you rethink how data flows through your Symfony apps.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2025-09-18",
},
link: '/con/2025/conferences/api-platform-with-restashop-a-walk-in-the-park/',
picture: "https://img.youtube.com/vi/l5gmnqMxcEQ/0.jpg",
speakers: [{
name: "Jonathan Lelièvre",
github: "jolelievre",
}],
video: "https://www.youtube.com/watch?v=l5gmnqMxcEQ&list=PL3hoUDjLa7eT3v5dchifeESn5Fq7jelG7&index=16",
};

# API Platform in PrestaShop, a walk in the park?

In PrestaShop 9 we developed a new modern API build on the CQRS architecture which is the base for our migration these recent years.

To help us with this new technical feature we chose API Platform as the backbone, and we’re gonna tell you how we went through this integration.
26 changes: 26 additions & 0 deletions pwa/data/events/conference-api-platform-x-redis.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2025-09-18",
},
link: '/con/2025/conferences/api-platform-x-redis/',
picture: "https://img.youtube.com/vi/q7qBP-cqwC4/0.jpg",
speakers: [{
name: "Clément Talleu",
github: "clementtalleu",
}],
video: "https://www.youtube.com/watch?v=q7qBP-cqwC4&list=PL3hoUDjLa7eT3v5dchifeESn5Fq7jelG7&index=11",
};

# API Platform x Redis

API Platform propose un large éventail d’outils. Initialement conçu comme un bundle Symfony, il s’est enrichi au fil des années pour prendre en charge de nombreuses technologies : GraphQL, MongoDB, Swagger, Laravel… Son architecture flexible permet aux développeurs et développeuses de l’adapter facilement à leurs besoins spécifiques, faisant de lui un framework particulièrement évolutif.

En février 2015 j’ai eu la chance d’être le tout premier utilisateur d’API Platform, alors encore intitulé DunglasApiBundle. Plus récemment j’ai développé un support de Redis pour API Platform, qui vous permet de profiter des principales fonctionnalités du framework (sérialisation, persistence, pagination, filtres…) directement dans un datastore Redis via le bundle php-redis-om.

Ce talk vous parlera d’API Platform, stockage de données, design pattern et Open Source.
26 changes: 26 additions & 0 deletions pwa/data/events/conference-artisinal-api-platform.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2024-09-20",
},
link: '/con/2024/conferences/artisinal-api-platform/',
picture: "https://img.youtube.com/vi/No3wkxIbe10/0.jpg",
speakers: [{
name: "Steve McDougall",
github: "JustSteveKing",
}],
video: "https://www.youtube.com/watch?v=No3wkxIbe10&list=PL3hoUDjLa7eSppJSvwSIeBexYZQWkN0bm&index=25",
};

# Artisinal API Platform

Join me at the API Platform Conference for an insight into how to make the API Platform more “artisinal”. By this, I mean we are going to explore how we can use API Platform within a Laravel application, and how we can lean on API Platform to craft robust APIs. We will delve into practical strategies, demonstrating how you can leverage the strengths of both frameworks to enhance your API development.

From this talk you will gain insights into setting up API Platform within a Laravel environment, optimizing the API performance, and implementing some best practices to ensure scalability and security.

Whether you’re a seasoned Laravel developer eager to expand your API toolkit, or new to API Platform, this talk will equip you with the knowledge you need to illuminate your next API Platform project.
24 changes: 24 additions & 0 deletions pwa/data/events/conference-better-debugging-with-xdebug.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2024-09-19",
},
link: '/con/2024/conferences/better-debugging-with-xdebug/',
picture: "https://img.youtube.com/vi/gOH1ElakyLw/0.jpg",
speakers: [{
name: "Derick Rethans",
github: "derickr",
}],
video: "https://www.youtube.com/watch?v=gOH1ElakyLw&list=PL3hoUDjLa7eSppJSvwSIeBexYZQWkN0bm&index=6",
};

# Better Debugging with Xdebug

In this talk I explain how to use Xdebug to get more productive writing PHP code, focussing on the improvements in Xdebug 3.2 and 3.3, to make the debugging experience better and easier to set up.

Beyond that, this session also goes through a few complicated scenarios that are harder to debug, and shows solutions to these conundrums.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export const meta = {
creator: "Les-Tilleuls.coop",
type: "conference",
venue: {
city: "Lille",
country: "France",
},
startDate: {
date: "2024-09-20",
},
link: '/con/2024/conferences/binary-brewing-automating-frankenPHP-builds/',
picture: "https://img.youtube.com/vi/Dq621T8yyXo/0.jpg",
speakers: [{
name: "Boas Falke",
github: "bofalke",
}],
video: "https://www.youtube.com/watch?v=Dq621T8yyXo&list=PL3hoUDjLa7eSppJSvwSIeBexYZQWkN0bm&index=24",
};

# Binary Brewing: Automating FrankenPHP Builds

Explore the fusion of FrankenPHP, Raspberry Pi, and GitLab CI. Join me in uncovering how we automated the creation of standalone binaries for PHP applications using FrankenPHP, transforming the deployment process into an easy one click solution. Key Takeaways:

- Learn how FrankenPHP’s standalone binary creation can simplify deployments.
- Understand the benefits of using FrankenPHP for unconventional environment deployments.
- Gitlab CI insights and how to use it for automated releases.
Loading
Loading