Changelog - Journal des modifications 2022
-
Version 0.2.23
Version 0.2.22
0.2.2252 Series – 25 décembre 2022 – 1 janvier 2023
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- ADD #532 Compteurs : on peut maintenant placer une série de 1 à 4 digits aléatoires dans un compteur, par exemple
{RAND2}
. - FIX #532 Token de réinitialisation de mot de passe : affichage en chaîne de caractères + utilisateur obligatoire.
0.2.2251 Series – 19 – 25 décembre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- ADD #1002 Passe le standard de sécurité des mots de passes de sha1 à sha512. ATTENTION : Suite à cette mise à jour, les utilisateurs doivent réinitialiser leur mot de passe pour pouvoir se reconnecter au logiciel.
- ADD #1004 Enregistrement d’un utilisateur : en appel API, on peut maintenant choisir la langue du nouvel utilisateur.
- ADD #1004 La collation MySQL par défaut devient utf8mb4_0900_ai_ci.
- ADD #1004 Réinitialisation de mot de passe : classe css pour le texte concernant l’envoi de mail, pour faciliter le restylage.
- ADD W1 Rajoute systématiquement un entête List-Unsubscribe à tout Email envoyé via smtp, pour maximiser sa qualité de transmission.
- ADD #505 Facilite la création de tables table.data auto-formatées en css dans un article HTML
- ADD #505 Permet la déclaration d’un droit d’accès utilisateur correspondant à la fonctionnalité bas-niveau en la déclarant simplement dans la classe + Fonctionnement du contrôle de droit d’accès regarde la classe finale en plsu de la classe source.
- ADD #505 Date_Time::toNext et Date_Time::toPrevious : unité par défaut = Date_Time::DAY. Finalement, Date_Time::day() n’est plus déprécié, car utile dans les templates
{date.day.
loc}@. - IMP #505 Simplifie le message d’accueil.
- FIX W1 Joinpoint::$stop n’était pas pris en compte lors que la fonction où se situe le point de jonction ne renvoyait pas de valeur.
- FIX W1 Faute de frappe dans l’algorithme sha512 de Hash des fichiers.
- FIX W1 Répare le trait métier permettant l’historisation des modifications de valeurs.
- FIX W1 Répare un crash de recompilation complète ?X&Z alors que le dossier cache n’est pas vide.
- FIX #505 Error lors de la remontée d’informations de débogage sur un contrôleur à classe null (?).
- FIX #505 L’authentication par token avec check ou sid ne devrait pas exécuter le contrôleur par défaut de la page d’accueil : rajoute la notion de run_replacement.
0.2.2250 Series : 12 – 18 décembre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- ADD #969 API d’authentification, API d’enregistrement de nouvel utilisateur : acceptent maintenant une réponse en json, incluant l’identifiant de session PHP
- ADD #505 Le formulaire de réinitialisation de mot de passe peut maintenant être appelé directement, sans identifiant ou email pré-rempli.
- ADD #505 Rajoute un bouton “Revenir au formulaire de connexion” à l’écran de confirmation de réinitialisation de mot de passe
- FIX #969 Un crash de récupération de l’objet en cache avec un nom de classe null.
0.2.2249 Series : 28 novembre – 11 décembre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- ADD #945 Demande de réinitialisation de mot de passe : envoie un mail même si le compte n’existe pas pour informer de la demande
- ADD #945 Demande de réinitialisation de mot de passe : maintenant en fonction de la langue de l’utilisateur / du navigateur (en/fr)
- ADD #945 Date_Time::currenctYear, pour faciliter l’ajout de l’année actuelle dans les gabarits
{Date_Time::currenctYear}
- ADD #945 Configuration Locale : autorise la langue ‘auto’ pour prendre la langue du navigateur ou de l’utilisateur connecté
- FIX #968 Annotations booléennes : devrait être true à défaut de valeur précisée
- FIX #945 N’enregistre plus les mails de réinitialisation de passe : on n’enregistre le mail que si le plugin Email/Archive est installé
- FIX #945 L’archivage des mails envoyés doit être associé à chaque sender pour fonctionner : contourne un problème d’AOP sur les méthodes abstraites d’interfaces non résolu à ce jour.
0.2.2247 Series : 21 – 27 novembre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- IMP #935 AOP : unset du id_property quand on unset une propriété objet avec lien de données
- IMP #945 Passe le lien de donnée Mysql en utf8mb4 pour autoriser un maximum de caractères spéciaux
- IMP #536 Allège les informations de déboguage en séparant ?D et ?DSQL (pour les commits / rollback de requêtes SQL)
- FIX #945 Getter::invalidate “désinitialise” les propriétés au lieu de les mettre à null, pour forcer le rappel du getter en lien de donnée
- FIX #945 Problèmes pour supprimer un objet
- FIX #945 Crash connexion utilisateur lors de la saisie d’un mauvais identifiant ou mot de passe
- FIX #945 L’authentification est maintenant insensible à la casse pour l’email et/ou l’identifiant
- FIX #949 Le Constructeur d’objets à partir de tableau doit supprimer les valeurs de propriétés qui n’acceptent pas null, pour permettre la construction d’objets vides ou incomplets
- FIX #536 AOP en typage fort sur les tableaux : l’affectation à un tableau via AOP fait appel à des notions qui nécessitent une parfaite conservation des références sur valeurs des propriétés
0.2.2246 Series : 14 – 20 novembre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- IMP #935 Autorise l’appel à l’API réinitialisation de mot de passe avec champs email / confirm-password à la place de login / password2
- FIX #935 Crash de l’envoi des mails via smtp
0.2.2245 Series : 7 – 13 novembre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- REF I1 Correctifs et fixes suite à la migration en typage fort php 8.1 et à la standardisation ES6 : rétablissement des tests unitaires, répare de nombreux bugs
- REF I1 Remplace les appels à json_encode par jsonEncode, afin de normaliser les options par défaut (exception en cas de souci)
0.2.2244 Series : 31 octobre – 6 novembre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- REF I1 php 8.1 : termine la migration complète du framework en mode typage fort, la refactorisation des fonctionnalités pour mieux tirer parti des fonctionnalités de php 8.1. Tout est en typage fort, mais le framework est encore très instable.
- REF I4 Remplace swiftmailer par symfony/mailer pour l’encodage MIME et l’envoi des mails. Non testé.
0.2.2243 Series : 24 – 30 octobre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- REF I1 php 8.1 : poursuit la migration complète du framework en mode “typage fort”, la refactorisation des fonctionnalités pour mieux tirer parti des fonctionnalités de php 8.1. Les modules lettres A à C sont prêts.
0.2.2242 Series : 10 – 23 octobre 2022
ATTENTION : Version très instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- ADD 204428 on-change-remove : les noms de champs préfixés par ?* adoptent le même comportement que le préfixe de valeur *: : ne modifier la valeur dans le formulaire que si elle n’était pas vide
- IMP 204428 Éditeur Wysiwyg Quill : change le code généré pour un texte vide ‘<p><br></p>’ et tous les textes ne contenant que des espaces (et équivalents) en une chaîne vide
- REF I1 php 8.1 : commence la migration complète du framework en mode “typage fort”, la refactorisation des fonctionnalités pour mieux tirer parti des fonctionnalités de php 8.1
- CNF B2 La clause
"repositories"
du fichier composer.json est inutile pour les modules logiciels it.rocks : il ne faut la conserver que dans les projets finaux - FIX 186018 Un problème de récupération du parent de module actif lors de l’affichage d’une fonctionnalité
- FIX 199548 on-change-remove : mauvaise mise à jour de la valeur des champs
<textarea>
- FIX A11 Fait passer tous les tests unitaires actuels en version php 8.1, ce qui corrige au passage des fonctionnalités qui étaient altérées
0.2.2240 Series : 12 septembre – 9 octobre 2022
ATTENTION : Dès cette version et pour les suivantes, le framework passe en phase instable, et compatible avec php 8.1 seulement, jusqu’à la fin de sa migration en typage fort et des refactorisations qui vont l’accompagner.
- ADD #918 Vous pouvez maintenant ajouter les données brutes lues depuis php://input dans les journaux applicatifs
- ADD 191632 L’utilisation du typage fort est à présent autorisé pour les propriétés de classes @business soumises à AOP, @getter ou @setter
- REF A1 Migration du dépôt et de l’annuaire de dépôts des projets it.rocks sous git.crafter.fr
- REF 191632 A3 Migration vers php 8.1. ATTENTION : pas de rétro-compatibilité avec php 8.0
- REF A11 ReflectionProperty::setAccessible n’a plus d’effet en php 8.1 : retire les usages de cette méthode
- FIX #918 Le parseur de sources PHP ignore maintenant les classes anonymes
- FIX A11 Revue et débogages du framework pour 12 tests unitaires crashés suite à la migration en php 8.1
0.2.2236 Series : 5 – 11 septembre 2022
- ADD 202716 L’authentification par jeton via API peut maintenant demander une vérification du jeton.
- IMP 202716 Améliore le message d’identification de jeton d’authentification nouvellement créé, en réponse à appel API
- IMP 202716 L’enregistrement d’un nouvel utilisateur peut maintenant être appelé via API et renvoyer un jeton d’authentification
- FIX 202770 Seules les propriétés publiques peuvent être étendues avec l’annotation de propriété @integrated (corrige un crash)
0.2.2235 Series : 29 août – 4 septembre 2022
- ADD 202716 Enregistrement d’un nouvel utilisateur : active l’utilisateur et défini sa langue par défaut, si les traits sont installés
- ADD 202716 Permet de générer un nouveau jeton d’authentification lors de la connexion d’un utilisateur, lors d’appels API
- IMP 202716 Enregistrement d’un nouvel utilisateur : nouveau message “identifiant déjà utilisé”
- IMP 202716 Jetons d’authentification à usages multiples : monte la date de fin de validité par défaut à 1 mois plutôt que 1 minute
- REF 202716 Has_Default des groupes d’utilisateurs doit être basé sur le
Has_Default
standard - STD 202716 Jeton d’authentification : Passe
By_Token
sous standards php 8.1
0.2.2234 Series : 22 – 28 août 2022
- ADD 202344 Permissions : permet de donner des accès à l’administration des réglages, permettant notamment de supprimer des listes personnalisées
- ADD 202362 Modèles d’impression : le copier-coller de tous les éléments de la page est remplacé par un copier-coller des éléments sélectionnés seulement
- IMP 202094 Modèles d’impression : la précision du générateur est maintenant inclusive, pour être un peu plus large
- IMP 202094 Modèles d’impression : Le plugin retire les colonnes identiques accepte maintenant des clés de configuration en minuscules
- IMP 202370 Permet la suppression de réglages, même lorsque utilisés par des utilisateurs
- IMP 202362 Traduction depuis javascript : permet à l’option
$1 => number
de fonctionner, lisibilité ES6 - FIX 202370 Le nom du réglage enregistré n’était pas enregistré dans le réglage utilisateur courant, lors de sa sélection
- STD 202362 Lisibilité ES6 sur model.js
0.2.2233 Series : 11 juillet – 21 août 2022
- FIX 202094 Mauvaise affectation de context dans le maintainer MySQL, dans certains cas
- FIX 202094 Corrige des erreurs suite à l’introduction de typage fort
0.2.2227 Series : 28 mars – 10 juillet 2022
- REF 200792 Des compatibilités avec php 8.1, remplace le trait Type_Boolean par une classe abstraite pour permettre les appels statiques
0.2.2212 Series : 14 – 27 mars 2022
- ADD 170426 Le décodeur de mails d’après des fichiers accepte plus d’encodages possibles, et est maintenant capable de lire directement des emails depuis un fichier ; ces processus sont également plus ouverts à extension par des classes construites
0.2.2210 Series : 28 février – 13 mars 2022
- ADD 195156 Nouvelle annotation de propriété @user_empty_value : empêche l’utilisateur de sélectionner la valeur vide parmi @values pour la propriété
- IMP 194678 Recherche de Person : on peut maintenant rechercher par nom, prénom, “nom prénom”, “prénom nom”
- REF 194988 Typage fort sur Contrôleur JSON et Search_Array_Builder
- REF 194622 Compilation de toutes les classes liées avant le tissage AOP (et non plus classe par classe)
- STD 194678 itrocks.functions.js et jquery.autoheight.js normalisés en ES6 sans point-virgules
- FIX 194678 Les INSERT sql doivent tenir compte autant que possible des types de propriétés, pour échappement correct des données et éviter des anomales sur les ENUM dont les valeurs sont numériques, vu que MySQL interpréte les numériques comme les “nième valeurs”, et non pas comme “la valeur n”
- FIX 195016 Recherche JSON avec objets / tableaux null
- FIX 194678 Réduit le padding vertical des textarea, augmenté accidentellement suite à 194060, depuis v0.2.2208
- FIX 194678 Meilleur auto-height sur les zones de texte multi-lignes
- FIX 194678 Défauts d’affichage du formulaire de connexion et de la réinitialisation de mot de passe
- FIX 194678 auto-width avec trop de padding droit depuis qu’on est en box-sizing
- FIX 195138 195202 @foreignlink doit être utilisé pour déterminer la valeur pour @foreign dans les cas où la propriété est des deux côtés et redéfinit @foreign, sinon on va avoir des noms de tables dissonants
- FIX 194622 195638 Comportements des compilateurs : assure qu’on utilise Reflection_Source et PHP\Reflection_Class comme des singletons : on avait en effet des problèmes de compilation du fait qu’on se retrouvait avec plusieurs instances de sources et/ou de classes pour le même fichier. Les problèmes sont résolus par ces correctifs.
0.2.2208 Series : 14 – 27 février 2022
- IMP 194678 Ajout rapide pour tous les objets qui ont un code et un nom utilisant Has_Code_And_Name
- REF 194622 Nettoyage civilité
- FIX 194060 Largeur des champs de saisie date ou date+heure en élément collection à une colonne trop étroite
0.2.2206 Series : 7 – 13 février 2022
- REF 191632 Typage fort sur Fast_Add et Email\Recipient
0.2.2205 Series : 31 janvier – 6 février 2022
- ADD 192670 Alignement des boutons d’actions gauche, centré ou droit
- ADD 192670 Boutons précédent / suivant dans l’affichage suivant l’ordre des documents dans la liste courante
- IMP 192670 193790 Le bouton Fermer depuis un formulaire ramène maintenant à l’affichage, et non plus à la liste
- IMP 186114 Les lignes et blocs de commentaires sont maintenant autorisées et conservés lors de l’installation de fonctionnalités dans le fichier builder.php
- REF 192670 Le bouton notes utilise maintenant l’alignement de boutons
- REF 186114 beginsWith et endsWith utilisent maintenant str_starts_with et str_ends_with
- FIX 193772 Souci d’affichage du fil d’Ariane barres verticales corrigé
- STD 191916 192670 191632 Applique du typage fort php 8 à plusieurs classes
0.2.2204 Series : 24 – 30 janvier 2022
- ADD 193356 @list average pour permettre l’affichage de moyennes en pied de liste
- ADD 191916 Défini l’annotation de propriété @parent_document
- FIX 182626 Nouvelle annotation de classe @test_condition pour ne réaliser certains tests unitaires que sur condition. À ce jour les TU passent à 100% sur le framework et ses configurations pilotes en condition réelles testées
- FIX 191914 Annotation de propriété @default : souci pour appliquer l’appel pour une propriété sous chemin.de.propriété (exemple : code devise par défaut lu depuis une méthode locale de document, sous un abonnement)
- FIX 191914 Problème de résolution du nom de classe pour les annotations décrivant une méthode, dans un contexte de chemin.de.propriété
- STD 191916 Diminue les notices PhpStorm dans le Maintainer
0.2.2203 Series : 17 – 23 janvier 2022
- REF 192778 Fonctions métier de compteurs de documents revue pour permettre plus de surcharge (ici besoin de souches multiples)
- FIX 192852 Élargi FLOAT_EPSILON pour que les tests de valeur zéro après plusieurs dizaines d’additions fonctionnent encore. Élargi à E-7, suffisant pour la plupart des besoins d’une application de gestion
- FIX 193220 Annotation de propriété @list sum affichat des totaux erronés lors de l’accumulation de propriétés à somme de plusieurs niveaux de chemins de propriété sur la même liste
- FIX 192778 Recherches à partir des termes affichés d’identifiants de compteurs de documents
0.2.2202 Series : 10 – 16 janvier 2022
- ADD 192668 Nouvelle annotation de classe @default : s’appliquera comme valeur pour l’annotation de propriété @default des propriétés de type “cette classe”
- ADD 192852 Nouvelle constante FF
- FIX 188796 SVG DOM element : faute de frappe with pour width
- FIX 173170 Élimite les warnings en création de nouveau modèle d’impression
- FIX 192852 Annotation de propriété @unique : la désactivation par @unique false ne fonctionnait pas, elle doit permettre de ne plus faire la vérification demandée par la classe parente
- FIX 192852 Régression corrigée : besoin d’accéder à la propriété privée
Html_Builder_Abstract_Collection::$template
0.2.2201 Series : 1 – 9 janvier 2022
- IMP 187298 Permet les recherches jour/mois/année dans les liste au format 8/10/20, sans préfixer le jour par un zéro
- IMP 182626 Recherche des dates vides avec espaces autour de “vide” ou équivalent de nouveau possible
- FIX 189834 La recherche sur une colonne mails liés (à une facture par exemple) provoquait des erreurs SQL
- FIX 192616 Initialise le
@composite
d’une ligne pour l’affichage HTML du sous-formulaire collection dès sa création, pour éviter que ce lien ne manque lors d’appels AOP par exemple (recalcul dynamique de totaux dans des@getter
) - FIX 188146 affichage HTML du sous-formulaire collection : n’initialise pas de nouvelle ligne sur
@user no_add
ou@user readonly
- FIX 186862 Configuration simple des compteurs : mise à jour temps-réel de l’exemple, pour tout ce qu’on saisit / coche / décoche
- FIX 186918 L’accès à la page “accès refusé” doit toujours être autorisé, et peut être appelée sans objet de référence
- FIX 188316 formulaires HTML désactivés : n’applique pas la transparence à ces formulaires entiers, notamment le formulaire de réinitialisation de mot de passe
- FIX 187612 L’export Excel toutes colonnes plantait lorsqu’il y avait des propriétés
@integrated @store false
- FIX 182626 Réparation d’une quinzaine de tests unitaires depuis les mises à jour des derniers mois : encodage des mails, validation des numéros de téléphones (quelle que soit la langue par défaut dans Loc)
- FIX 182626 Recherches dans les listes : 05/03 était considéré comme 03/2005 au lieu de 05/03/2022 : remet bien la recherche jour/mois par défaut
- FIX 182626 Accepte les équivalents à vide dans les recherches de dates en anglais natif en plus d’en la langue courante (permet aux tests unitaires de passer)
- STD 186862 Passe des scripts javascript aux conventions adoptées pour l’ES6 : app.on_change_remove.js, app.date_time.js
Versions antérieures
- Changelog – Journal des modifications 2021
- Changelog – Journal des modifications 2020
- Changelog – Journal des modifications 2019
- Changelog – Journal des modifications 2018
- ChangeLog – Journal des modifications 2017
Notice
Type d’intervention :- ADD – Addition : ajout d’une nouvelle fonctionnalité
- IMP – Improvement : amélioration d’une fonctionnalité existante
- REF – Refactoring : refactorise l’implémentation d’une fonctionnalité
- CNF – Configuration : réglages de configuration uniquement
- DEV – Development : code ajouté uniquement et spécifiquement pour les configurations de développement (par exemple traces de débogage)
- FIX – correction d’un bogue
- STD – Standards : application de standards de programmation
- DOC – Documentation : ajout / modification de la documentation incluse dans le code
- [RAD] – Rapid Application Development : développement graphique de fonctionnalités par l’utilisateur final
- 2 premiers caractères : l’année,
- 2 caractères suivants : le numéro de semaine.
La numérotation de ticket 12345 est un numéro interne de ticket, et ne correspond pas forcément à la numérotation de tickets dans GitHub.
Le master (github.com/itrocks/framework/master) correspond à la version en cours de développement, et contient donc les dernières évolutions du build le plus récent.
Voir aussi
- ADD #532 Compteurs : on peut maintenant placer une série de 1 à 4 digits aléatoires dans un compteur, par exemple