Aller au contenu principal Aide Panneau de contrôle

 

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.