🇫🇷 La fin des tokens ? Une nouvelle architecture pourrait changer l’IA
Dans cette vidéo, les grandes lignes de H-Net et BLT sont présentés. Cela permet d’avoir une vision sur le pourquoi la gestion par tokens pourrait être remplacée dans les LLMs futurs.
🇬🇧 Symfony 8.2
🇬🇧 Messenger Inbox
Une nouvelle option de Messenger permettra d’enregistrer en automatique les messages reçus par vos workers. Cela se fait au sein de la même transaction que pour votre application.
L’objectif est de ne pas rejouer un message qui aurait déjà été pris en compte. Et en cas d’erreur côté applicatif, la transaction aura pour effet de rollback le message enregistré permettant de le rejouer.
🇬🇧 Generics and Stricter Types in the Serializer
Avec Symfony 8.2, le Serializer va mieux prendre en compte certains typages.
On aura ainsi :
- La prise en compte des génériques lorsque l’on denormalize pour utiliser les bons objets.
- Dans le cas d’un array définissant une union de classe (
list<ClassA|ClassB), lors du denormalize le bon objet pourra être remappé à partir du nom des arguments. S’il ne trouve pas d’équivalence, une exception est lancée.
Cette version vient ajouter également une différence entre array (sous entendu des clés numériques incrémentales) et array<int, mixed>. Le premier ne doit accepter que des vraies listes (['une', 'liste']) et le second des objets où les clés sont des int ({0: 'une', 1: 'liste'}).
Avec Symfony 8.2, passer un objet pour le premier déclenchera une dépréciation et en Symfony 9 une exception.
Pour terminer, TypeResolver expose à présent une méthode getMismatches permettant de récupérer les éléments qui n’ont pas permis de faire correspondre une valeur au type donné.
🇬🇧 Cross-Application Messaging
Afin de simplifier la connexion avec des applications qui n’utilisent pas Messenger, le serializer messenger.transport.interop_serializer a été ajouté.
Il permet d’envoyer ou recevoir des messages plus « brut », sans suivre la forme propre à Messenger.
Cependant, certaines infos restent intéressantes, par exemple, des ids de message. Pour compenser, il a été ajouté le stamp header mappers qui permet l’ajout de headers aux messages que les autres applications pourront lire.
En cas de message signé, ces headers sont pris en compte pour générer la signature (excepté type, Content-Type et X-Message-Stamp-*).
🇬🇧 Recovering from Controller Attribute Failures
Côté controller, nous pouvons déjà ajouter des vérifications en amont de l’exécution de notre code via des attributs PHP, comme vérifier qu’un lien de connexion est toujours valide.
Cependant, l’effet de bord c’est qu’une erreur générique est retournée et cela ne correspond pas toujours à une expérience utilisateur optimale.
Avec Symfony 8.2, il est possible de récupérer certaines exceptions dans le code de notre controller pour gérer l’erreur soit même.
Pour se faire, il suffit d’ajouter un argument nullable typé avec l’exception que l’on souhaite gérer.
🇬🇧 Security Expressions Everywhere
Cette nouvelle version permettra d’utiliser les méthodes de sécurité is_granted, is_authenticated, is_fully_authenticated et is_remember_me dans certaines expressions de Validator (ex: Assert\When).
A noter que ces fonctions ne sont opérationnelles que dans un contexte de requête. Dans un contexte CLI, cela déclenchera une exception.
La nouvelle fonction current_user permettra de récupérer l’utilisateur courant, s’il existe, dans les expressions. On peut ainsi l’utiliser avec MapEntity pour par exemple filtrer sur toutes les commandes de l’utilisateur courant.
Il ne sera donc plus nécessaire d’utiliser l’attribut PHP CurrentUser dans les arguments de notre controller pour ensuite l’utiliser dans les expressions.