Comme chaque année l’équipe de JoliCode était présente au Forum PHP de l’AFUP, le plus gros événement PHP de l’Hexagone, pour deux jours de conférence sur l’éco-système !
Dans cet article nous allons vous partager nos take-aways, ce que nous y avons découvert et ce que nous en retenons. Accrochez-vous à vos écrans, on va chez Mickey 🐭 ! Nous avons séparé nos retours en deux articles tant il y avait de choses à raconter, voici donc le jour 1.
Alexandre Daubois, développeur chez Decathlon et contributeur régulier à Symfony, nous a présenté une sandbox pour analyser les malwares, développée en PHP. Avant d’en arriver à cette solution, il a détaillé son parcours pour tenter de sécuriser les fichiers uploadés dans un back-office sécurisé de son entreprise.
Par exemple, pour s’assurer qu’un fichier ne contient pas de virus, plusieurs approches sont possibles. Après avoir mis le fichier en quarantaine :
Toutes ces solutions s’avérant trop onéreuses, Alexandre a décidé de développer une classe PHP capable de vérifier les cas les plus courants de manière plus économique :
../) ;La conférence s’est déroulée de manière fluide et agréable. Toutefois, bien que la solution proposée soit intéressante, elle nous est apparue un peu simpliste, et nous aurions sans doute attendu quelque chose de plus approfondi.
Nicolas Grekas a présenté les nouveautés de Symfony 7, et même si nous en avions déjà parlé en avril, de nouvelles informations sont venues enrichir cette version.
Parmi les nombreux changements évoqués, on trouve l’ajout de typage natif, l’utilisation des nouvelles syntaxes PHP 8.2, et les « constructor property promotion ». Mais concentrons-nous sur les véritables nouveautés.
Du côté des tests, une avancée notable : PHPUnit 11 deviendra bientôt la version par défaut, et le phpunit-bridge va disparaître. Initialement conçues pour combler certaines lacunes de PHPUnit, comme les rapports de dépréciation, ces fonctionnalités sont désormais pleinement supportées nativement.
Concernant les nombreux bridges de Symfony, on observe une activité intense, comme l’ajout récent d’un connecteur JoliNotif, notre bibliothèque pour déclencher des notifications desktop ! 😍
De nouveaux attributs pour les contrôleurs font leur apparition, notamment les attributs #[Map*] qui permettent de mapper des contenus de requêtes dans des objets ou arguments avec une gestion d’erreurs (4xx) en cas de problème. Mentionnons également #[WhenNot], une version inversée de #[When], permettant d’activer un service uniquement dans certains environnements (dev, test, prod).
À partir de Symfony 7.2, le composant Console pourra gérer des signaux d’alarme via un événement ConsoleAlarmEvent, ce qui facilite la manipulation des processus avec alarme.
En outre, Symfony inclura désormais la possibilité d’avoir des serializers nommés. Cela permet de résoudre des conflits potentiels, notamment avec des outils comme API Platform ou Jane, en évitant que les normalizers se propagent à toute l’application. On pourra ainsi avoir des configurations spécialisées sans effets de bord.
Enfin, plusieurs nouveaux composants sont en discussion, notamment ObjectMapper, JsonEncoder, FeatureFlags, et AccessToken. Le composant Uri est en débat, mais pourrait être intégré directement dans PHP.
Kévin Dunglas, développeur chez les-tilleuls.coop et core contributeur à Symfony, API Platform, FrankenPHP, et autres projets, nous a présenté un cas concret : un bug rencontré dans FrankenPHP et sa résolution.
Qui n’a jamais été confronté à un bug mystérieux, sans savoir par où commencer ? Si vous vous êtes déjà retrouvé dans cette situation, cette conférence est faite pour vous !
À travers plusieurs étapes, Kévin nous a guidés dans l’identification de l’origine potentielle d’un bug : est-ce dû à notre propre code (dépendances à jour, utilisa...
[Courte citation de 8% de l'article original]