Les avancées de YACS depuis le 11 juin 2026
Depuis le 11 juin, le dépôt de YACS a reçu une trentaine de commits. Le fil conducteur : la compatibilité PHP moderne, la robustesse du cœur, et un nouveau système de digest pour les notifications par mail.
Compatibilité PHP 8.1 et 8.4
Plusieurs correctifs visent à garder YACS compatible avec les versions récentes de PHP.
Le mode d'erreur de mysqli a été restauré en mode "valeur de retour" plutôt que "exception", car PHP 8.1 remonte désormais des exceptions par défaut, ce qui cassait la gestion d'erreurs existante.
Dans table_row(), les cellules nulles sont désormais protégées avant tout preg_match(), PHP 8.4 refusant les arguments null implicites.
La fonction mysqli_ping(), dépréciée, a été remplacée par une requête sentinelle SELECT 1.
Robustesse et corrections
Les motifs booléens passés en recherche fulltext sont désormais assainis pour empêcher les opérateurs MATCH ... AGAINST d'échapper à leur contexte.
Les cycles d'ancrage dans get_focus() et get_path_bar() sont maintenant détectés et interrompus, évitant les boucles infinies sur certaines structures de contenu imbriquées.
La construction de self_url s'appuie désormais sur REQUEST_URI, ce qui supprime des boucles de redirection canonique observées sur certaines configurations serveur.
Overlay::load() reçoit maintenant l'objet ancre plutôt que son item brut, et le contenu WYSIWYG est correctement rendu tel quel grâce à l'option 'formatted' appliquée à l'enregistrement.
Un nouveau système de digest pour les mails
Le mailer regroupe désormais les notifications en file d'attente par destinataire plutôt que de les envoyer une à une, avec une porte digest_hour optionnelle qui reste ouverte jusqu'à vidage complet de la file. Le panneau de contrôle expose maintenant les réglages mail_digest et mail_digest_hour, permettant d'activer et d'ajuster ce comportement sans toucher au code.
Réorganisation du moteur de codes
Le rendu des codes [php] et [snippet] a été extrait du cœur vers une extension dédiée et déplaçable, codes/code_pre.php, via un nouveau code_pre::render(). Le code [execute], jugé peu utilisé, a lui aussi quitté le cœur pour rejoindre codes/unused/. L'objectif : alléger le noyau et faciliter la maintenance de ces briques annexes.
Librairies tierces
fpdf a été mis à jour vers la version 1.9, et scssphp vers la 1.13.
La décomposition par ancre a par ailleurs été étendue à toutes les tables ancrées du système, uniformisant ce mécanisme au-delà de son périmètre initial.
Cinq semaines de travail concentrées sur la fiabilité : la base de YACS tient mieux la route face aux versions récentes de PHP, et le nouveau digest mail devrait alléger sensiblement le trafic de notifications sur les sites actifs.