Changelog - Journal des modifications 2023
-
Redirected from Changelog > Changelog – Journal des modifications
Version 0.2.23
ATTENTION : Le master est excessivement instable : l’ensemble des annotations est progressivement remplacé par des attributs PHP, des retouches importantes ont été apportées à l’ORM pour alléger au maximum les annotations nécessaires à sa mise en application, mais c’est en cours de développement et vos applications ne fonctionneront pas correctement pour l’instant.
0.2.2315 Series : 10 – 16 avril 2023
ATTENTION : Version instable : l’ensemble des annotations est progressivement remplacé par des attributs PHP
- REF IW1 @textile devient #Textile
- FIX IW1 Autorise l’utilisation des … de paramètres multiples dans
@param/@return/@set/@var
- FIX IW1 Remet des #Store dans les traits pour appliquer les @link implicites. Temporaire : le framework devrait changer de fonctionnement pour permettre de se passer au maximum des #Store inutiles
- FIX IW1 Autorise les annotations sur des phpdocs sur une ligne, par exemple
/** @replaces */
et/** @override */
- FIX L17 Traduction inverse : erreur de type sur les valeurs de limitation
- FIX L18 Parseur de tokens : ignore les noms de classes dynamiques avant
::
- FIX L18 N’ajoute pas la propriété implicite $id pour l’ORM aux classes abstraites, interfaces et traits (crash sur les interfaces)
- FIX L18 Répare une confusion entre
@override @link_composite
et@override @link
dans pendant la compilation AOP - FIX L18 Rétabli les méthodes manquantes de #Default :
getReflectionMethod()
,is()
- STD L18 Conventions de codage, notamment suppression de déclarations de types
@var
redondants. - DOC L18 Plus d’informations de débogage pendant la compilation PHP
0.2.2314 Series : 3 – 9 avril 2023
ATTENTION : Version instable : l’ensemble des annotations est progressivement remplacé par des attributs PHP
- ADD I15 Nouveau parseur de dépendances, rapide et indépendant du framework (pas encore utilisé)
- ADD I16 Les fonctions de Reflection PHP scannent maintenant les attributs de classes, de propriétés et de méthodes
- ADD I14 #Store suffit maintenant, il est inutile de préciser les #Link. Cette annotation deviendra obsolète à terme, utiliser à la place #Store, et #Component quand nécessaire
- ADD IH1 Le framework n’est maintenant compatible qu’à partir de PHP version 8.2, pour tirer parti des dernières améliorations, comme par exempel les déclarations de constantes dans les traits.
- IMP I14 Crée un Dashboard par défaut, plutôt qu’afficher une anomalie “l’objet n’existe plus”
- IMP I14 Déclaration explicite des propriétés internes pour l’AOP : restreint aux propriétés nécessaires
- IMP I14 Déclare les propriétés internes à l’AOP dans les traits où la propriété native est déclarée, y-compris les traits, et non plus dans les classes descendantes.
- REF I16 Nouveau prototype de compilateur de cache PHP (pas encore utilisé)
- REF I14 @component, @display_order, @unit, @values, @user, @group, @groups_order, @mandatory, @multiline, @length, @max_length, @min_length, @decimals, @precision, @list, @max_value, @min_value, @sort, @unique, @list, @default, @show_time, @show_seconds, @tooltip, @widget sont remplacés par l’attribut correspondant #Component, #Display_Order, #Unit, #Values, #User, #Group, #Groups_Order, #Mandatory, #Multiline, #Length, #Max_Length, #Min_Length, #Decimals, #List_, @Max_Value, #Min_Value, #Sort, #Unique, #List_, #Default_, #Show_Time, #Show_Seconds, #Tooltip, #Widget
- REF I14 Certaines annotations redondantes sont remplacées par un attribut unique : @identify et @unique deviennent #Unique
- REF CF6 Utiliser
SERVER_NAME
lorsqueHTTP_POST
n’est pas défini - REF I14 Attributs : utilise un trait Attribute\Common plutôt qu’hériter d’une classe commune, pour laisser libre les possibilités d’héritage et de construction d’attributs descendant de classes non-attributs
- FIX I15 Des erreurs de casse de namespaces
- FIX I14 La PHP\Reflection_Property : les commentaires contenant des annotations n’étaient pas lus à travers les attributs
- FIX I14 Les appels à l’AOP sur classes parentes ne fonctionnait plus pour les propriétés lorsqu’AOP sur classes enfantes
- FIX I14 Supprime un très vieux patch sur les réglages utilisateurs
- FIX I14 On ne peut plus stocker des
$objet->id
ànull
: la valeur de cette propriété interne à l’ORM est maintenant indéfinie quand l’objet n’est pas stocké - FIX I14 Corrige un bug de valeur par défaut et de fonctions isGz, isHex et isJson pour #Store
- FIX I14 Passe sur le validateur de formulaire, pour corriger les contrôles lorsqu’il y a des attributs, mais aussi des imprécisions historiques sur les types float, tableaux obligatoires
- FIX I14 Il faut cumuler les attributs hérités et répétés
- FIX I14 Bug du compilateur AOP : la valeur de retour était ignorée lorsqu’il n’y a plus de @return dans les commentaires php, même si un type de valeur de retour est défini en typage fort PHP
- FIX I14 Reflection PHP : Corrige un problème de parse de noms de fonctions utilisant des mots réservés, comme par exemple
empty
- STD I14 Supprime de nombreux types redondants car définis comme annotations en plus du typage fort : on ne laisse les annotations de type que lorsqu’elles apportent une information supplémentaire ou sont rendues obligatoires par l’IDE PhpStorm, ce qui allège la base de code et évite des répétitions
0.2.2313 Series : 27 mars – 2 avril 2023
ATTENTION : Version instable : l’ensemble des annotations est progressivement remplacé par des attributs PHP
- REF I14 @getter, @setter, @implements, @all, @composite, @component, @store, sont remplacés par l’attribut correspondant #Getter, #Setter, #Implement, #All, #Composite, #Component, #Store, #Extend.
0.2.2312 Series : 20 – 26 mars 2023
ATTENTION : Version encore en cours de stabilisation.
- FIX CM1 Le nom par défaut d’une personne crashai lorsque la fonctionnalité civilité n’est pas activée
- FIX L6 Stringable::fromString peut retourner null pour certains objets, quand on lui entre une chaîne vide par exemple
- FIX L6 Un bug de typage fort (strlen sur null, alors que la variable peut contenir un objet représentable en chaîne de caractères) dans les modèles d’impression
0.2.2311 Series : 13 – 19 mars 2023
ATTENTION : Version encore instable car en cours de généralisation du typage fort et de migrations depuis le système d’annotations vers une génération de l’utilisation des attributs. Quelques fonctionnalités logicielles peuvent provoquer des crash.
- FIX L6 Erreur de compilateur sur id_property_name
- FIX H1 Typage fort : la configuration d’un plugin peut être une simple chaîne de caractères (Email_Flag)
- FIX B4 Résultat d’un Select SQL : on ne peut plus stocker l’identifiant de l’objet lié dans la propriété devant contenir l’objet : il faut le stocker dans la id_property
0.2.2310 Series : 27 février – 12 mars 2023
ATTENTION : Cette version est crashée : la modification sur le compilateur AOP rend les logiciels inutilisables.
- FIX L6 Erreur de type lors de la création automatique/interactive d’un nouveau compteur
- FIX L6 PHP 8.1 et typage fort : Corrige des erreurs sur les créations de modèles d’impression
- FIX L6 Compilateur AOP : Les
id_property_name
qui contiennentnull
doivent également êtreunset
- FIX L6 Plantage de createClone() lorsqu’appelé sans nom de classe destination
0.2.2308 Series : 6 – 26 février 2023
ATTENTION : Version encore instable car en cours de généralisation du typage fort et de migrations depuis le système d’annotations vers une génération de l’utilisation des attributs. Quelques fonctionnalités logicielles peuvent provoquer des crash.
- FIX #1104 Une anomalie “deprecated” lors des exports de fichiers : dont forcer la conversion en chaîne de caractères
0.2.2305 Series : 30 janvier – 5 février 2023
ATTENTION : Version encore instable car en cours de généralisation du typage fort et de migrations depuis le système d’annotations vers une génération de l’utilisation des attributs. Quelques fonctionnalités logicielles peuvent provoquer des crash.
- ADD I14 Commence à remplacer les @annotations parsées dans les php-doc-comment par des #Attributs natifs PHP : @display, @displays, @set, @store_name sont remplacés respectivement par #Display, #Displays, #Set, #Store_Name. Aucune rétro-compatibilité n’est prévue.
- ADD I14 Cumule la logique de @business et @store_name (maintenant #Store_name) pour n’avoir besoin que d’un unique attribut de classe #Store. Aucune rétro-compatibilité n’est prévue.
- ADD I14 Remplace @alias par #Alias, @extends par #Extend, @implements par #Implement.
- ADD I14 Remplace, en cumulant leur action, @user_change et @user_change_realtime, par #User_Change.
- ADD I14 Reflection_Attribute : permet d’embarquer les références à la classe de déclaration, à la classe finale, d’où l’attribut a été interrogé.
- ADD I14 Attribut de classe #Store : contrairement à @store et @store_name, le nom dans l’espace de stockage, lorsqu’il est automatiquement calculé, l’est depuis le nom de la classe où est défini l’attribut. Sauf si c’est un trait : dans ce cas, le nom sera celui de la classe utilisant directement le trait.
- ADD I14 Gestion des attributs comme les annotations : de base les attributs sont récupérés à peu près comme nativement en PHP, mais on peut définir des attributs #Inheritable pour en hériter les valeurs des classes parentes, traits utilisés et interfaces implémentées. Dans ce cas, les attributs IS_REPETITIVE seront cumulés avec leurs parents.
- ADD I14 Gestion des attributs #Always, pour les attributs qui auront une instance par défaut s’ils ne sont pas définis, pour se rapprocher de l’ancien fonctionnement des annotations qui instanciaient systématiquement, mais ici que pour les attributs où ce sera utile.
- IMP I14 Permet que la surchage de type en php-doc-comment ne soit plus nécessaire au tissage de liens AOP : le type natif PHP est pris en charge pour les propriétés et les valeurs de retour des fonctions/méthodes. Si le type est surchargé par @var ou @return, ce type est reconnu en priorité. Aucune action pour l’instant pour pouvoir se passer de @param, reste à vérifier ici si le type est utilisé. On peut a priori se passer de @param si ni @param ni @return n’apporte une information supplémentaire par rapport aux types natifs.
- IMP V8 @widget peut maintenant s’appliquer sur des propriétés visibles dans un tableau d’un sous-objet @component (mais toujours pas en cellule de liste).
- FIX I14 Corrige un problème sur Reflection_Class::getProperties() : les propriétés internes utilisées pour l’AOP ne doivent pas être retournées.
0.2.2304 Series : 23 – 29 janvier 2023
ATTENTION : Version encore instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- ADD X1 Un bouton “modifier” permet maintenant de modifier les données directement dans une liste, à la chaîne, comme on le ferait dans un tableur
- ADD I11 Annotation de classe @store : remplace le prototype
@stored
(abandonné), remplace@business
(déprécié), permet d’éviter de déclarer l’annotation de propriété @link pour toutes les propriétés de la classe - ADD I11 Annotation de classe @store : inutile de la déclarer lorsqu’une annotation de classe @store_name est explicitement déclarée
- ADD V6 Annotation de classe @store : implicitement définie à
true
pour les traits qui @extends d’une classe qui a @store àtrue
- ADD I11 Compatibilité php 8.2 : le framework fonctionne correctement avec php 8.1 et php 8.2
- ADD I11 Pour php 8.2 : les propriétés dynamiques sont dépréciées et remplacées autant que possible par des propriétés déclarées
- ADD I11 Pour php 8.2 : les propriétés à usage internes pour l’AOP, le DAO, l’ORM ($id, $_, $property_) sont maintenant déclarées explicitement dans la version transpilée des classes
- ADD V6 Interne : permet d’instancier PHP\Reflection_Class avec uniquement un nom de classe. Attention, ça crée un doublon, voire un remplacement, de la version en cache
- IMP I12 Moins de messages d’avertissement pour l’utilisateur quand on essaie de sauvegarder un formulaire avec un nombre à virgule obligatoire non renseigné
- FIX I11 Un problème de calcul de valeur par défaut pour le Mainteneur MySQL
- FIX V7 Crash des objets en colonne de liste
0.2.2303 Series : 16 – 22 janvier 2023
ATTENTION : Version encore instable car en cours de généralisation du typage fort, beaucoup de fonctionnalités logicielles provoquent des crash.
- ADD I9 Gère l’affichage des propriétés regroupées en colonnes, qui n’était plus opérationnel depuis la dernière évolution du design (en 2021/2022)
- IMP V1 @foreign : on n’a pas à tenir compte des @composite lorsqu’on est en @link Map, qui ne définit pas une relation composé-composant
- IMP V1 @conditions : autorise les espaces autour des opérateurs
- IMP V4 Purement esthétique : agrandissement de la zone d’affichage des valeurs, notamment lorsque vides
- FIX #1058 Parfois crash sur @default / @user_default
- FIX V1 Le mainteneur crashait sur création automatique de table
- FIX V1 Typage fort : @null doit prendre sa valeur par défaut en fonction de
@var |
ou|null
- FIX V1 Le typage fort avec
?
: doit être considéré comme|null
pour l’annotation de type et la classe Type - FIX V1 Les entiers qui ne sont pas @mandatory devraient être sauvegardés à
null
- FIX V1 @decimal : @min_value et @max_value peuvent être des nombres à virgule flottante
float
- FIX I8 Erreur de typage fort dans Post_Files
- FIX I8 La fonctionnalité d’import standard ne fonctionnai plus depuis le passage au typage fort
- FIX I8 @group : les propriétés classées en
_top
ou_bottom
ne s’affichaient plus - FIX I10 Corrige la barre de défilement horizontale dans les listes
0.2.2302 Series : 9 – 15 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.
- FIX #1058 Construction d’une propriété Html_Builder_Property en formulaire de modification : répare un crash lorsque @default / @user_default est défini, en utilisant plus souvent l’objet du Reflection_Property_Value comme référence.
0.2.2301 Series : 2 – 8 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.
- FIX #1036 Builder::clone doit cloner les Collection, même si elles ne sont pas chargées depuis le Dao (depuis typage fort PHP 8.1, où les variables AOP sont indéfinies et invisibles jusqu’à être chargées).
- FIX #1036 Colonnes de liste : rash lors de l’ajout d’un chemin pointant un objet lié non composite.
- FIX #1036 Erreur lors du double-clic sur un entête de liste.
- FIX #1036 Plantage lors du chargement d’une liste personnalisée.
- FIX #1036 Plantage lors de la recherche sur plage de dates.
- FIX #1036 Réparation du Mainteneur MySQL, HS depuis la migration en typage fort
- FIX #1036 Valeur par défaut en base de données pour annotation de propriété @default Date_Time::now
Versions antérieures
- Changelog – Journal des modifications 2022
- 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, #1234 ou L123 est un numéro interne de ticket, et ne correspond pas forcément à la numérotation de tickets dans GitHub.
Le master (https://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. À ce titre, il correspond à un état instable et ne doit pas être utilisé en environnement de production. Nous vous invitons à lui préférer une branche de version stable.
Voir aussi