La grande question

PHP pertinent en 2023 ?

Qui je suis ?

  • Jonathan Boyer
  • Freelance full-stack
  • Formateur

La mode

Pourquoi ces technologies ?

  • Front-end de plus en plus important
  • Sites de plus en plus dynamique
  • Variété des usages
  • Séparation des équipes

Limites du front-end

  • Chargement initial lent
  • Référencement (SEO)

Server Side Rendering

Générer les pages côté serveur

Server Side Rendering

Générer les pages côté serveur

"Island"

Seuls certains éléments sont interactif

"Island"

Seuls certains éléments sont interactif

"Island"

Seuls certains éléments sont interactif


      ---
      // Example: Use a dynamic React component on the page.
      import MyReactComponent from '../components/MyReactComponent.jsx';
      ---
          
      <MyReactComponent client:load />

"Island"

On faisait déjà ça avant


<div class="carousel"> </div>
<script>
    $('.carousel').slick();
</script>
          

"Island"

Même exemple mais plus moderne


<images-carousel></images-carousel>
          

L'asynchrone

  • La logique est souvent séquentielle
  • Les requêtes sont traitées en parallèles
  • Les tâches longues sont gérées dans une file d'attente

Serverless

On éxecute le code, que lorsqu'il y a une requête HTTP

Serverless

On éxecute le code, que lorsqu'il y a une requête HTTP


export const hello = (
  event
) => {
  return {
    statusCode: 200,
    body: "Bonjour" + event.queryStringParameters.name,
  };
};

PHP-FPM fait déjà ça !


<?php
echo "Bonjour " . $_GET['name'];

Avec des bonnes performances grâce au preloading

Et l'expérience utilisateur ?

PHP seul ne suffit pas
Recharger les pages n'est pas idéal

Turbo

Ajaxifie tout un site
turbo.hotwired.dev

Unpoly

Interaction client piloté par le serveur

htmx

Interaction client piloté par le serveur

Alpine.js

Rend l'HTML dynamique

Custom Element

Permet de créer des éléments HTML personnalisés
Preact, Svelte, Solid...

Livewire

Comme React, mais le rendu est côté serveur

Mercure

Notification instantané

Conclusion

Question de perspective