Chapitre: Nouveautés
^ Introduction | Migration depuis une version précédente de jelix » |
− Table des matières
Version en développement.
Nouveautés apportées par la version 1.8 ¶
Attention : la documentation n'est pas encore tout à fait à jour vis à vis de ces nouveautés.
Nouvelles fonctionnalités ¶
- Jelix 1.8 est compatible avec PHP 7.4 jusqu'à PHP 8.4.
- Coeur :
- nouvelle classe
Jelix\Core\Services
qui permettra d'accéder à de futur services sans utiliser de méthodes statiques sur ces services. L'instance de cet objet est accessible depuis\jApp::services()
. - Réponse "binary": support de fonctions de callback pour générer le contenu. Cela permet d'utiliser des flux, générateurs etc.
jIncluder::incAll()
: elle retourne maintenant la valeur retournée par le fichier inclus- Nouvelle interface
jIActionSelector
surjSelectorActFast
etjSelectorAct
, pour permettre de fournir d'autres implémentations de sélecteurs, sans avoir à hériter de ces deux classes.
- nouvelle classe
- Contrôleurs :
- nouvelles méthodes
redirect()
etredirectUrl()
qui sont des raccourcis pour la création d'objet réponse de redirection.
- nouvelles méthodes
- jForms :
- Meilleure prise en charge de l'envoi de formulaire par xmlHttpRequest
- nouvelle méthode
BuilderBase::outputAllControlsValues()
- nouvelle méthode
BuilderBase::outputControlRawValue()
- nouvelle méthode
WidgetInterface::outputControlRawValue()
- widget "image" : possibilité d'afficher la nouvelle image sélectionnée temporairement.
Nouvelle option
showModeForNewImage
sur le widget, qui indique comment afficher la nouvelle image.
- Interface d'administration de jAcl2Db :
- Elle a été complètement retravaillée pour être plus simple à utiliser.
- Possibilité de cacher des droits (
hiddenRights
dans la section de configurationacl2
) - Il n'est plus possible de donner certains droits sur le groupe anonyme.
- Certains droits sont maintenant dépendant du droit 'view' de la même branche.
- jEvent :
- Possiblité de donner un objet héritant de
jEvent
àjEvent::notify()
. Ainsi vous pouvez avoir un objet contenant des méthodes permettant de manipuler des paramètres propre à l'évènement. - Le diffuseur d'évènement a été retravaillé et suit maintenant la recommendation PSR-14.
jEvent::notify()
sera déprécié dans de futures versions. Préférez l'usage de\jApp::services()->eventDispatcher()->dispatch($event)
pour la notification d'objet.
- Possiblité de donner un objet héritant de
- Configurateur :
- Le configurateur est maintenant capable de déclarer automatiquement les urls de modules, et de supprimer les déclarations d'urls des modules désinstallés.
- Les configurateur de modules peuvent indiquer une liste d'url à déclarer
XmlMapModifier
a également des nouvelles méthodes pour supprimer des urls- nouvelle méthode
findProfile()
sur les helpers
- Installeur :
- La classe
PreInstallHelpers
a maintenant l'API database pour permettre de vérifier du contenu dans la base de données avant d'autoriser l'installation. - nouvelle méthode
findProfile()
sur les helpers - nouvelle option à la commande
installer.php
:--no-clean-temp
. Et maintenant la commande vérifier que le contenu du répertoire temp peut être supprimé, plutôt que de générer une erreur.
- La classe
- Le script
runtests.php
et le mécanisme de tests unitaires dans les modules est maintenant déprécié. Il est préférable d'écrire les tests en dehors du répertoire des modules. Cela rend plus simple le déploiement des modules sans inclure les tests, via Composer ou autre système de déploiement. Cela permet aussi d'utiliser la version de PHPUnit que vous voulez, ou d'utiliser un autre framework de tests unitaires. - Deux nouveaux plugins de template :
{ifacl2and}
,{ifacl2or}
- Ajout de la bibliothèque Javascript Datatables dans les assets de Jelix
Nouvelles fonctionnalités dans 1.8.1 ¶
- jDao : les "records" peuvent maintenant hériter de n'importe quelle classe auto-chargeable
- jEvent : les listeners peuvent être des classes auto-chargeable.
Nouvelles fonctionnalités dans 1.8.2 ¶
- Nouvelles API dans les scripts d'installation pour gérer les points d'entrée.
Nouvelles fonctionnalités dans 1.8.3 ¶
- Nouvelle méthode
setHtmlAttributes()
surjResponseHtml
- Nouvelle méthode
getFileResponse()
dansjController
pour renvoyer facilement un fichier - jauthdb_admin module:
- Nouvel évènement
jauthdbAdminAfterUpdate
quand les propriétés d'un profile ont changé. - Ajout d'une variable de template
formOptions
dans les templates affichant les formulaires de jauthdb_admin, - nouveau évènements
jauthdbAdminPasswordForm
etjauthdbAdminCheckPasswordForm
pour les formulaire
- Nouvel évènement
- jauthdb:
- possibilité de s'authentifier avec l'email ou le login, ou simplement le login, avec le paramètre de configuration
authenticateWith=login-email
. - la section
auth_<driver>
est maintenant fusionnée avec la section<driver>
deauth.coord.ini.php
, ainsi on peut redéfinir des paramètres dans localconfig.ini.php. - Nouvelle méthode
getDao()
on the jAuthdb
driver
- possibilité de s'authentifier avec l'email ou le login, ou simplement le login, avec le paramètre de configuration
- nouvelle classe
jAuthPassword
pour vérifier la robustesse d'un mot de passe ou pour générer un mot de passe aléatoire - nouveau widget jForms :
password_html
pour les champssecret
. Ajoute un bouton "voir". - nouveau widget jForms :
passwordeditor_html
pour les champssecret
. Il vérifie la robustesse du mot de passe saisie. - Nouvelle méthode
jAcl2DbUserGroup::renameUser()
- Nouveau paramètre de configuration pour définir la valeur par défaut de l'entête
Return-Path
pour jMailer.
Nouvelles fonctionnalités dans 1.8.4 ¶
- Nouvelle méthode
jResponseFormJQJson::setError()
pour forcer à retourner une erreur ou une url de redirection - Support des favicons dans WebAssets (ex:
mygroup.icon=favicon-32x32.png|sizes=32x32
). - Nouvelle méthode
WebAssetsSelection::getIconLinks()
Nouvelles fonctionnalités dans 1.8.5 ¶
- La version de l'application est disponible dans
jApp::config()->appVersion
- Nouveau paramètre de configuration
sslmode
pour les profils Postgresql.
Nouvelles fonctionnalités dans 1.8.6 ¶
- ldap driver pour jAuth: support du mode TLS mode avec le paramètre de configuration
tlsMode
Nouvelles fonctionnalités dans 1.8.7 ¶
jForms : en javascript, le formulaire est maintenant déclaré après l'initialisation de tous
les contrôles, pas seulement après l'initialisation de l'objet jforms.
Un évènement jformsready
est envoyé sur la balise <form>
et les fonctions
de callbacks déclarées avec onFormReady
sont exécutées une fois que tous le formulaire
et ses objets JS soient prêt. Si vous voulez garder l'ancien comportement,
vous devez indiquer l'option 'deprecatedDeclareFormBeforeControls'=>true
au générateur
de formulaire.
Nouvelles fonctionnalités dans 1.8.10 ¶
Nouveau plugin de template ctrl_value_assign
pour jForms.
Nouvelles fonctionnalités dans 1.8.11 ¶
Nouvel attribute alias
sur la balise entrypoint
des fichiers urls.xml
.
Nouvelles fonctionnalités dans 1.8.12 ¶
Support de pages d'erreur pour chaque langue dans app/responses/
: error.fr_FR.php
, error.de_DE.php
...
Nouvelles fonctionnalités dans 1.8.14 ¶
- jForms : améliorations dans
TemplateController
pour certains plugins de templates - Nouveau template de plugin
ifctrlactivated
pour jForms - Améliore la compatibilité avec PHP 8.4
Nouvelles fonctionnalités dans 1.8.16 ¶
- Nouvelle classe
jFormsDynamicStaticDatasource
pour les sources de données dans jForms. - Ajout des variables de template
$httpCode
et$httpMessage
dans le template d'erreur http.
API obsolètes ¶
- Tests unitaires dans les modules :
jUnitTestCase
andjUnitTestCaseDb
sont dépréciés. Utilisez plutôt\Jelix\UnitTests\UnitTestCase
et\Jelix\UnitTests\UnitTestCase
. Et la prise en charge de PHPUnit < 6.0 a été supprimé.
Suppressions ¶
- Les plugins de templates
swfjs
,swfbiscuit
et le scriptjquery.flash.js
sont supprimés, parce que Flash n'est plus utilisé. $GLOBALS['JELIX_EVENTS']
n'existe plus.
Changement internes ¶
- Mise à jour de Symfony Console vers 5.4.14
- Mise à jour de PHPUnit vers 8.5 pour les tests sur jelix
- Mise à jour de PHPMailer vers 6.6.*
- Mise à jour de Jquery vers 3.6.1
- Mise à jour de Jquery UI vers 1.13.2
- Mise à jour de CKEditor vers 35.3.0
- Mise à jour de Datatables vers 1.12.1
- Les tests avec CasperJs ont été supprimé
- Des scripts JS comme
jforms_jquery.js
sont maintenant générés avec WebPack. Voir le dossierassets
dans le dépôt git. - jForms : déplacement de code, des plugins de template pour jforms vers une nouvelle
classe
TemplateController
. Cela permet de générer le code HTML des formulaires sans avoir à utiliser les templates, ou de créer plus facilement ses propres plugins de templates pour les formulaires.
Contributeurs à Jelix 1.8 ¶
- Laurent Jouanneau
- Adrien De Croutte (jForms Time, et la première itération sur la nouvelle interface pour jacl2db)
- René-Luc D'Hont (callback dans jResponseBinary, option session_role pour pgsql)
- Raphael Martin (diverses petites améliorations)
- Joel Kociolek (correction de problèmes avec PHP 8, correction du logout avec les cookies de session)