<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta http-equiv="x-ua-compatible" content="ie=edge">

        <title>Planète PHP</title>
        <link rel="icon" href="/assets/images/veille-logo-kfIoDGF.svg" sizes="any" type="image/svg+xml">

        <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.php">

        
    
            <link rel="canonical" href="/articles" />
    
            <link rel="next" href="/articles?page=2" />
    
                    <link rel="stylesheet" href="/assets/styles/app-oI5o2Jp.css">
        
                    
<link rel="stylesheet" href="/assets/styles/app-oI5o2Jp.css">
<script type="importmap">
{
    "imports": {
        "app": "/assets/app-NAdK9l0.js",
        "/assets/styles/app.css": "data:application/javascript,"
    }
}
</script><script>
if (!HTMLScriptElement.supports || !HTMLScriptElement.supports('importmap')) (function () {
    const script = document.createElement('script');
    script.src = 'https://ga.jspm.io/npm:es-module-shims@1.10.0/dist/es-module-shims.js';
    script.setAttribute('crossorigin', 'anonymous');
    script.setAttribute('integrity', 'sha384-ie1x72Xck445i0j4SlNJ5W5iGeL3Dpa0zD48MZopgWsjNB/lt60SuG1iduZGNnJn');
    document.head.appendChild(script);
})();
</script>
<link rel="modulepreload" href="/assets/app-NAdK9l0.js">
<script type="module">import 'app';</script>            </head>
    <body class="dark:bg-slate-800 flex flex-col h-screen justify-between">
        <div>
            <div class="hidden sm:block bg-primary-900">
                <nav class="container mx-auto flex text-white justify-center">
                    <a href="https://afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">AFUP</a>
                    <a href="https://event.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">AFUP Day 2026</a>
                    <a href="https://barometre.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">Baromètre</a>
                    <a href="https://planete-php.fr" class="px-5 py-1 text-sm hover:bg-primary-500 bg-primary-500">Planète PHP</a>
                    <a href="https://pufa.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">PUFA</a>
                </nav>
            </div>

            <div class="bg-primary-500">
                <nav class="container mx-auto flex flex-col sm:flex-row text-white px-0 sm:px-64 justify-center">
                    <div class="flex items-center grow gap-4 p-2 sm:p-0">
                        <img src="/assets/images/afup-icon-inverted-Fo5OHjq.png" class="h-11 my-auto" alt=""/>
                        <a href="/" class="text-2xl font-bold" data-qa="site-name">Planète PHP</a>
                    </div>
                    <div class="flex justify-between">
                        <a href="/articles" class="px-6 py-4 hover:bg-primary-300 bg-primary-300 sm:bg-transparent sm:border-b-4 border-white">Articles</a>
                        <a href="/feeds" class="px-6 py-4 hover:bg-primary-300">Sources</a>
                        <a href="http://www.planete-php.fr/rss.php" class="px-6 py-4 hover:bg-primary-300">Flux RSS</a>
                    </div>
                </nav>
            </div>

            <main class="container mx-auto px-0 sm:px-64 mt-0 sm:mt-4">
                
    <div class="flex flex-col gap-4 mt-4 sm:mt-0">
                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-1-date">28/04/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                28/04/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-1-title">Claude Code, Cursor, Symfony/AI, Vercel AI SDK : 3 formations pour garder la main</h2>
                <a href="https://jolicode.com/blog/claude-code-cursor-symfony-ai-vercel-ai-sdk-3-formations-pour-garder-la-main" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-1-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-1-content">
                Trois formations IA sont disponibles dès maintenant sur JoliCampus, avec des sessions ouvertes à l'inscription. Elles sont construites sur ce qu'on pratique chez JoliCode et Premier Octet : des projets...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-2-date">27/04/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                27/04/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-2-title">Plan de migration vers Tailwind CSS v4 🚀 : la méthode (presque) sans douleur</h2>
                <a href="https://jolicode.com/blog/plan-de-migration-vers-tailwind-css-v4-la-methode-presque-sans-douleur" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-2-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-2-content">
                Ça y est, le grand jour est arrivé ! Vous avez enfin décidé de vous attaquer à cette fameuse dette technique qui vous fait faire des cauchemars la nuit. 😅
Beaucoup de nos projets (et sans doute les vôtres)...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-3-date">16/04/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                16/04/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-3-title">Vibrations, livraison par Pokémon Go et la complexité du temps</h2>
                <a href="https://www.synolia.com/synolab/outils/vibrations-livraison-par-pokemon-go-et-la-complexite-du-temps/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-3-feed">
                    Lire l'article sur Synolia
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-3-content">
                Découvrez notre veille technique du mois de mars entre Web Haptics, rumeurs sur Windows 12, livraisons de pizzas avec Pokémon Go et une valorisation de PHP !
1, Donner de la vie à vos applications mobiles...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-4-date">08/04/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                08/04/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-4-title">Notre retour sur le SymfonyLive Paris 2026</h2>
                <a href="https://jolicode.com/blog/notre-retour-sur-le-symfonylive-paris-2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-4-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-4-content">
                Les années passent, mais certaines traditions restent immuables. Il y a quelques jours, la communauté s'est de nouveau réunie à la Cité Universitaire pour l'édition 2026 du Symfony Live Paris.
Si le monde...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-5-date">01/04/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                01/04/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-5-title">Symfony Live 2026 – retours</h2>
                <a href="https://www.gameandme.fr/divers/symfony-live-2026-retours/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-5-feed">
                    Lire l'article sur Yohann Nizon (Game And Me)
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-5-content">
                Récemment, j&#8217;ai eu la chance de participer au Symfony Live 2026, l&#8217;occasion pour moi de rencontrer mes collègues de Smile, et de voir les dernières tendances du développement PHP. Je vous...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-6-date">30/03/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                30/03/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-6-title">Jane supporte maintenant JSON Schema 2020-12 et OpenAPI 3.1</h2>
                <a href="https://jolicode.com/blog/jane-supporte-maintenant-json-schema-2020-12-et-openapi-3-1" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-6-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-6-content">
                La version v7.11.0 de Jane PHP, le générateur de client d'API et de Normalizer, est désormais disponible. Cette mise à jour majeure du moteur de génération se concentre sur l'alignement avec les derniers...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-7-date">26/03/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                26/03/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-7-title">Déploiement On-Premise - Partie 2 - Castor à la rescousse</h2>
                <a href="https://jolicode.com/blog/deploiement-on-premise-partie-2-castor-a-la-rescousse" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-7-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-7-content">
                Dans le précédent article, nous avons vu toutes les étapes nécessaires pour préparer les images Docker qui seront utilisées en production. Mais nous allons maintenant aller plus loin pour automatiser...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-8-date">25/03/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                25/03/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-8-title">Déploiement On-Premise - Partie 1 - Le socle Docker</h2>
                <a href="https://jolicode.com/blog/deploiement-on-premise-partie-1-le-socle-docker" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-8-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-8-content">
                Dans cet article, nous vous expliquons notre approche de déploiement hybride pour une application Symfony conteneurisée avec Docker. Ce système permet un déploiement à la fois sur des serveurs connectés...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-9-date">17/03/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                17/03/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-9-title">Le signal d&#039;alarme est tiré à l&#039;AFUP</h2>
                <a href="https://afup.org/news/1254-signal-dalarme-tire-a-lafup" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-9-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-9-content">
                Plusieurs signaux nous alarment
Ce sont plusieurs sonnettes d’alarme qui ont déclenché une vague d’inquiétude au sein de l’équipe. Tout d’abord, depuis janvier, plusieurs de nos sponsors historiques nous...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-10-date">11/03/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                11/03/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-10-title">Installer et configurer Caddy 2 avec certificat SSL pour tous vos sous-domaines</h2>
                <a href="https://blog.eleven-labs.com/fr/caddy-wildcard-dns-challenge/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-10-feed">
                    Lire l'article sur Eleven labs
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-10-content">
                Suite aux offres OVH VPS 2026 j'ai décidé de migrer mon vieux Digital Ocean toujours bloqué sur une debian 12.
J'aime héberger mes différents services en utilisant des containers et en mettant un reverse...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-11-date">03/03/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                03/03/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-11-title">Les plannings de l&#039;AFUP Day 2026 sont sortis</h2>
                <a href="https://afup.org/news/1253-planning-afupday2026-sortis" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-11-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-11-content">
                Les 4 plannings sont disponibles
Ce matin du 3 mars 2026 ont été publiés les déroulés du vendredi 22 mai à Bordeaux, Lille, Lyon et Paris. Découvrez comment s'enchaineront les conférences dans chaque...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-12-date">02/03/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                02/03/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-12-title">L&#039;enquête 2026 du baromètre des salaires en PHP 2026 est lancée !</h2>
                <a href="https://afup.org/news/1252-enquete-barometre-salaires-php-2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-12-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-12-content">
                Appel à toutes et tous : faites entendre votre voix
Développeuses et développeurs PHP, responsables d’équipe ou de projet, architectes, dirigeant·e·s, juniors comme seniors, salarié·e·s ou freelances,...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-13-date">24/02/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                24/02/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-13-title">Rejoignez la communauté pour le Super Apéro PHP 2026</h2>
                <a href="https://afup.org/news/1251-rejoignez-communaute-superaperophp2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-13-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-13-content">
                Notez la date : le Super Apéro PHP 2026 se tiendra le soir du mercredi 11 mars.  Dès 18h30, dans les antennes AFUP participantes, la communauté PHP est conviée à une soirée mêlant conférences courtes,...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-14-date">17/02/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                17/02/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-14-title">Boring technology: les bases de données relationnelles</h2>
                <a href="https://www.jdecool.fr/blog/2026/02/18/boring-technology-les-bases-de-donnees-relationnelles.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-14-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-14-content">
                La semaine dernière, j’évoquais les « boring technologies » et le fait qu’elles soient sous-cotées dans l’esprit collectif. Les bases de données relationnelles et le langage SQL en sont probablement l’exemple...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-15-date">17/02/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                17/02/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-15-title">L&#039;AFUP Day 2026 Paris annonce complet</h2>
                <a href="https://afup.org/news/1250-afupday-2026-paris-complet" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-15-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-15-content">
                Un événement très attendu par la communauté
La communauté parisienne a répondu à l'appel de l'AFUP Paris, elle qui attendait avec impatience le retour d'un cycle de conférences AFUP dans Paris intra-muros...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-16-date">15/02/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                15/02/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-16-title">Simplifier vos objets immuables avec PHP 8.5</h2>
                <a href="https://www.jdecool.fr/blog/2026/02/16/simplifier-vos-objets-immuables-avec-php-8-5.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-16-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-16-content">
                PHP 8.5 a été publié le 20 novembre 2025 et, dans les nouvelles fonctionnalités proposées par cette version, on trouve notamment la possibilité de mettre à jour des propriétés lors du clonage d’objets....
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-17-date">10/02/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                10/02/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-17-title">AutoMapper 10.0 : Le mapping haute performance prêt pour le futur</h2>
                <a href="https://jolicode.com/blog/automapper-10-0-le-mapping-haute-performance-pret-pour-le-futur" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-17-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-17-content">
                C’est une étape majeure pour la librairie : AutoMapper passe en version 10.0.
Si notre promesse reste inchangée — transformer vos données d'un format à un autre le plus vite possible — cette version marque...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-18-date">09/02/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                09/02/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-18-title">Au sujet de l&#039;assemblée générale 2026</h2>
                <a href="https://afup.org/news/1249-au-sujet-de-lassemblee-generale-2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-18-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-18-content">
                Présents sur place ou en ligne, nos membres ont répondu à l'appel de l'association en vue de cette AG. Avec une cinquantaine de personnes assistant à la réunion, représentant plus de 170 présences et...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-19-date">28/01/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                28/01/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-19-title">Que devient Elasticsearch en 2026 ?</h2>
                <a href="https://jolicode.com/blog/que-devient-elasticsearch-en-2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-19-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-19-content">
                J'étais hier à Elastic{On} Paris - la conférence de l'éditeur d'Elasticsearch 🔎. Dans cet article, je vais vous partager mon point de vue de développeur et consultant Elasticsearch sur les nouveautés,...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-20-date">27/01/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                27/01/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-20-title">La carte de vœux interactive du groupe Synolia</h2>
                <a href="https://www.synolia.com/synolab/evenements/carte-de-voeux-2026/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-20-feed">
                    Lire l'article sur Synolia
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-20-content">
                Pour sa carte de vœux 2026, le Groupe Synolia a fait le choix de sortir des formats classiques. L’objectif : imaginer une expérience digitale à la fois interactive, engageante et différenciante, capable...
            </p>
        </article>
    </div>
</div>

            </div>

    <nav class="sm:my-12 flex justify-between dark:text-gray-300">
        <div class="flex-grow">
                    </div>

                    <a href="/articles?page=2" class="block p-6 sm:p-0 hover:underline" data-qa="page-next">Page suivante</a>
            </nav>

            </main>
        </div>

        <footer class="py-5 bg-slate-50 dark:bg-slate-700 dark:text-white text-center">
            Un site <a href="https://afup.org" class="text-primary-500 hover:underline">AFUP</a><br />
            Hébergé sur <a href="https://www.clever-cloud.com" class="text-primary-500 hover:underline">Clever Cloud</a><br/>
            Code Source sur <a href="https://github.com/afup/planete" class="text-primary-500 hover:underline">GitHub</a>
        </footer>
    </body>
</html>
