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\Servicesqui 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
jIActionSelectorsurjSelectorActFastetjSelectorAct, 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
showModeForNewImagesur 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 (
hiddenRightsdans 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
XmlMapModifiera également des nouvelles méthodes pour supprimer des urls- nouvelle méthode
findProfile()sur les helpers
- Installeur :
- La classe
PreInstallHelpersa 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.phpet 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()dansjControllerpour renvoyer facilement un fichier - jauthdb_admin module:
- Nouvel évènement
jauthdbAdminAfterUpdatequand les propriétés d'un profile ont changé. - Ajout d'une variable de template
formOptionsdans les templates affichant les formulaires de jauthdb_admin, - nouveau évènements
jauthdbAdminPasswordFormetjauthdbAdminCheckPasswordFormpour 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 jAuthdbdriver
- possibilité de s'authentifier avec l'email ou le login, ou simplement le login, avec le paramètre de configuration
- nouvelle classe
jAuthPasswordpour vérifier la robustesse d'un mot de passe ou pour générer un mot de passe aléatoire - nouveau widget jForms :
password_htmlpour les champssecret. Ajoute un bouton "voir". - nouveau widget jForms :
passwordeditor_htmlpour 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-Pathpour 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
sslmodepour 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
TemplateControllerpour certains plugins de templates - Nouveau template de plugin
ifctrlactivatedpour jForms - Améliore la compatibilité avec PHP 8.4
Nouvelles fonctionnalités dans 1.8.16 ¶
- Nouvelle classe
jFormsDynamicStaticDatasourcepour les sources de données dans jForms. - Ajout des variables de template
$httpCodeet$httpMessagedans le template d'erreur http.
API obsolètes ¶
- Tests unitaires dans les modules :
jUnitTestCaseandjUnitTestCaseDbsont dépréciés. Utilisez plutôt\Jelix\UnitTests\UnitTestCaseet\Jelix\UnitTests\UnitTestCase. Et la prise en charge de PHPUnit < 6.0 a été supprimé.
Suppressions ¶
- Les plugins de templates
swfjs,swfbiscuitet le scriptjquery.flash.jssont 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.jssont maintenant générés avec WebPack. Voir le dossierassetsdans 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)


