Raccourcis : Contenu - rubriques - sous rubriques
EN FR

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 sur jSelectorActFast et jSelectorAct, pour permettre de fournir d'autres implémentations de sélecteurs, sans avoir à hériter de ces deux classes.
  • Contrôleurs :
    • nouvelles méthodes redirect() et redirectUrl() qui sont des raccourcis pour la création d'objet réponse de redirection.
  • 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 configuration acl2)
    • 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.
  • 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.
  • 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() sur jResponseHtml
  • Nouvelle méthode getFileResponse() dans jController 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 et jauthdbAdminCheckPasswordForm pour les formulaire
  • 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> de auth.coord.ini.php, ainsi on peut redéfinir des paramètres dans localconfig.ini.php.
    • Nouvelle méthode getDao() on the jAuth db driver
  • 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 champs secret. Ajoute un bouton "voir".
  • nouveau widget jForms : passwordeditor_html pour les champs secret. 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 and jUnitTestCaseDb 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 script jquery.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 dossier assets 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)