Raccourcis : Contenu - rubriques - sous rubriques
EN FR

Piste : 1.3

Wiki: Plan du site - Derniers changements - Back link

Jelix 1.3

Voici la liste complète des améliorations apportées depuis la version 1.2.x, et qui sont disponibles dans la version 1.3.

Date de sortie : 18/10/2011

Améliorations principales

  • Plus qu'un fichier application.init.php et seulement un dossier temp sont nécessaires pour www, cli et jelix scripts.
  • jLog et jResponseHtml ont maintenant des plugins.
  • Nouvelle gestion des erreurs. jLog est utilisé pour stocker les erreurs qui ne sont maintenant plus affichées dans les réponses.
  • Nouvelle page d'erreur (code http : 500) affichée quand une erreur survient. Vous pouvez la redéfinir pour avoir le design que vous voulez.
  • Tous les profils de connexion (pour jDb, jKVDb, jCache, etc.) sont maintenant stockés dans un seul fichier profiles.ini.php.
  • Une nouvelle debug bar, extensible, affichant de nombreuses informations (erreurs, requêtes sql…)
  • Les constantes JELIX_APP_* sont maintenant remplacées par une nouvelle classe jApp.
  • Améliorations dans jAcl2 : les sujets de groupes et les droits peuvent être interdits par un groupe.
  • Réécriture majeure de jelix-scripts, pour une utilisation plus simple des commandes jelix : il n'y a plus de script jelix.php. Il a été remplacé par un nouveau script cmd.php dans l'appplication pour lancer les commandes, et par un script createapp.php dans lib/jelix-scripts/. Jelix-scripts est fourni dans les trois éditions (dev, opt, gold).

Mettre à jour depuis Jelix 1.2.x

Détails des changements

Améliorations

  • core:
    • les constantes JELIX_APP_* sont à présent remplacées par de nouvelles propriétés dans la nouvelle classe jApp. application.init.php doit être modifié dans les applications existantes, pour définir les chemins avec jApp au lieu de créer les constantes JELIX_APP_*. Cependant, pour être compatibles avec les modules existants, ces constantes sont automatiquement créées par jCoordinator
    • Suppression multiple de fichiers *.init.php. Seul le fichier application.init.php est nécessaire, et un seul dossier temporaire. application-cli.init.php et jelix-scripts.init.php peuvent être supprimés librement depuis applications. Et uniquement le dossier temp/myapp/ est nécessaire pour pour stocker tous les fichiers temporaires quelque soit le contexte.
    • Nouvel objet jInstallerApplication pour récupérer la liste des points d'entrées, les modules utilisés , etc..
    • jLog a été déplacé dans le “core” et a maintenant des plugins
    • nouvelle méthode jLog::logEx() pour journaliser facilement les exceptions
    • Ticket #1126: nouveau moyen pour gerer les erreurs. Les réponses ne sont plus responsables de l'affichage des erreurs. Les erreurs sont traitées par les loggers. Les Loggers peuvent injecter des erreurs dans les réponses s'ils le veulent. Un nouveau template est responsable d'afficher un message d'erreur générique. Les détails des erreurs sont stockées par les loggers. Déplacement ou renommage de quelques paramètres de configuration.
    • ajout d'une nouvelle méthode jRequest::isAjax
    • le support de PHP 5.0 et PHP 5.1 a été supprimé définitivement
    • Suppression de jUrl::parseFromRequest()
    • jRequest::getIp() - meilleur traitement de HTTP_X_FORWARDED_FOR
    • nouvel objet jApp traitant des chemins de l'application. Il y a également les méthodes :
      • jApp::loadPlugin pour charger les plugins de n'importe quel composant
    • Nouveau paramètre backendBasePath dans la configuration, pour supporter les applications installées derrière un serveur mandataire (proxy), où le chemin de base de l'URL du serveur de la partie frontend n'est pas égale au chemin de base de l'URL du serveur de la partie backend
    • Plugins pour le coordinator: leur configuration peut-être lue automatiquement depuis une section coordplugin_xxx dans la configuration principale, si le fichier (de configuration du plugin) n'est pas donné
    • jLocale: ajout du support de fallback locale. (ticket 1252)
  • jProfiles: nouvelle classe pour gérer tout profil de connexions, et une file d'attente de connexions. Tous les profils (pour jDb, jKVDb, jCache et le nouveau jSoapClient) sont à présent stockés dans un seul fichier, profiles.ini.php. dbProfils.ini.php, cache.ini.php etc, n'existent plus.
  • réponses:
    • nouvelle réponse basique html (sur laquelle vous pouvez fournir un template contenant une page entièrement HTML)
    • jResponseHtml possède à présent des plugins.
    • Minify est maintenant un plugin de jResponseHtml, et n'est plus du tout intégré dans une classe. la classe jMinifier n'existe plus, à cause des problèmes de performance et de licence. Pour minifier les ficheirs CSS et JS, le développeur devrait maintenant ajouter un point d'entrée minify.php qui utilise directement Minify.
    • Changements effectués dans les réponses pour utiliser la nouvelle gestion des erreurs. Pour la plupart des réponses, le contenu des erreurs est ressortie en tant que du texte ou en tant que réponse HTML.
    • nouvelle vraie debug bar (en tant que plugin de jResponseHtml). Elle affiche les erreurs harmonieusement (sans rompre l'affichage principal), et possède ses propres plugins:
      • plugin pour montrer les requêtes SQL
      • plugin pour montrer les données de session et les données jForms
      • plugin pour montrer les journaux par défaut
      • plugin pour montrer les messages soap
  • jDb
    • implementation de jDbConnection::getAttribute() pour récupérer la version de la base de données (ticket #913)
  • utils:
    • jBuildTools, nouvelles instructions de traitement: includeinto, includerawinto. nouvelles options pour toutes les instructions de traitement 'include'
    • jMailer: ajout de la possibilité de copier tous les courriels dans des fichiers
    • nouvelle classe jSoapClient pour récuperer un objet SoapClient, configuré avec des paramètres stockés dans un profil.
  • Ajout de scripts pour créer et exécuter les tests phpunit (l'intégration de Simpletests et le module junittests sont à présent dépréciés)
  • Meilleur génération de mot de passe aléatoire dans jAuth
  • jAcl2:
    • la clé primaire d'un utilisateur d'un groupe est à présent une chaine et plus un entier auto-incrémenté. La configuration des droits et des groupes sera plus facile. Le champ code a également été supprimé
    • ajout de la possibilité d'interdire un droit à un groupe. Si un utilisateur est dans plusieurs group, et q'un de ses droits est annulé dans un de ces groupes, alors l'utilisateur n'a plus ce droit.
    • Amélioration faits sur l'UI de la gestion des droits (module jacl2db_admin)
  • jForms:
    • ajout de la possibilité d'exécuter facilement du code js pendant l'évènement de soumission. Nouvelle méthode jFormsJQ.addSubmitHandler .
    • ajout du support d'attributs dans le plugin form de tpl, ie: les attributs html peuvent être ajoutés à l'élément du formulaire généré.
    • ajoute de la possibilité de désactiver un élément dans un contrôle “choice”
    • Menulist devrait avoir un élément vide même si ce n'est pas requis (Ticket #977)
    • ajout du support d'éléments vide dans une listboxes (Ticket #977)
  • Jelix-scripts: refactorisation majeur de jelix-scripts, pour facilité l'utilisation des commandes jelix
    • plus aucun script jelix.php. Remplacé par un nouveau cmd.php dans l'application pour lancer les commandes sur l'application ( –myapp paramètre n'existe plus)
    • nouveau script createapp.php into lib/jelix-scripts/
    • nouveau fichier de configuration (de “préférences” pour générer les entêtes de vos sources, au format ini), stocker dans votre répertoire HOME. plus de fichier default.conf.php.
    • meilleur API interne, plus d'objets, moins de fonction unique, plus aucun defines, et meilleur traitement des erreur
    • jelix-scripts est à présent fourni dans toutes les éditions: dev, opt, gold
    • nouvelle commande pour créer des packages de langue (ticket #268)
  • jTpl: on devrait être capable d'indiquer le code langue du plugin jloccal de jTpl (ticket #1203)

Bugs corrigés

  • Ticket #1318: correction de jUrl::escape n'appellait pas urlencode en mode highlevel
  • le protocol https est à présent vérifié quand ce dernier est nécessaire pour le moteur d'url significant (ticket #380)
  • ticket #1160: pour le driver mssql, support des limites pour les requêtes.

Et toutes les corrections de bug de la branche 1.2.x (1.2.0, 1.2.1, 1.2.2).

Détails des changements dans la 1.3RC1

Améliorations

  • Ticket #1379 - mise à jour de TCPDF en 5.9.093
  • mise à jour de php5redis lib en 1.2
  • mise à jour de jquery en 1.6.2
  • mise à jour de jQuery UI en 1.8.15
  • mise à jour de markitup en 1.1.12
  • jForms: meilleure vérification du nom de contrôle lors de la récupération d'un contrôle dans certaines méthodes
  • Nouveau plugin “implode” pour jTpl
  • ticket #1340 - jTpljTpl: formdatafull devrait afficher une liste pour des contrôles d'items multiples
  • Debug bar, sql log: amélioration de l'affichage de la liste des logs, meilleur détéction de l'objet jDao
  • jAcl2: nouvelle méthode dao pour changer le sujet d'un groupe de sujets
  • ticket #809 - Génération des droits jACL2 avec la commande createdao
  • ticket #1388 - améliorer les performances lors de l'utilisation clearstatcache
  • Ticket #1189 - contrôleur crud , le décalage (offset) de page devraient être transmis à toutes les pages de sorte que l'utilisateur retourne sur la bonne partie de la liste des pages
  • ticket #1421 - Affichage dans les journaux du HTTP referer
  • meilleure vérification de sécurité basée sur l'ip dans le plugin auth
  • script Jelix :
    • petite amélioration dans l'affichage de la commande help
    • chanement d'un message d'erreur dans le script createapp
  • ticket #1400 - dans jDateTime ajout du format “date time” sans les secondes
  • Dans un contexte cli, il est mieux d'afficher les messages d'erreur directement dans la console
  • Meilleur traitement du contexte CGI pour les script CLI qui sont lancés avec php-cgi
  • jUrl - moteur significant - nouveau paramètre “type”, 'path' permet d'avoir le chemin comme paramètre
  • Ticket #1411 - Ajout d'une option de configuration pour forcer la version HTTP
  • ticket #1416 - jIncluder devrait envoyer une exception quand le compilateur échoue
  • ticket #1220 partie 2 - nouvelle méthode jImageModifier::transformImage pour modifier une image dans un fichier, sans utiliser le système de cache de jImageModifier
  • Valeur par défault pour notfoundAct ne devrait pas être vide
  • Mise à jour des liens dans le template de la zone check_install

Bugs corrigés

  • correction d'une mise à jour jelix, où emailHeaders était déplacée avec une mauvaise valeur
  • script SQL d'installation pgsql: la valeur booléenne devrait être entre quotes
  • ticket #1384: correction de bug sur l'updater pour jelix 1.3
  • ticket #1381: correctiion d'une variable non définie dans Auth::getRandomPassword
  • ticket #1382: fichier d'erreur jIAuthDriver.iface.php n'existe pas quand on utilise installapp avec l'édition “opt”
  • correction d'un mauvais nom de méthode dans jRequest: getDomainName
  • jUrl::getFull devrait supporter le cas où le moteur d'url engine retourne déjà un nom de domaine
  • les composants devraient utiliser les méthodes de jRequest pour récuperer le protocol et le nom de domaine, au lieu d'utiliser directement les valeurs
  • Ticket #1385: memory logger devrait avoir des limites pour stocker les messages
  • Correction du bogue dans jUrl::getFull - le nom de domaine était dupliqué dans certains cas
  • Corrcetions de bogues dans jacl2db_admin: les droits pour les groupes anonymes ne devraient pas être modifiés. Et on ne devrait pas changé le droit de 'oui' à 'non'
  • ticket #1404 - correction d'une erreur php lors de l'utilisation d'une liste d'exclusion de CSS dans le plugin minify
  • ticket #1392 - les commandes jelix devraient être compatibles avec php-cgi dans un contexte “cli”.
  • Ticket #1414 - correction d'une regression: Pour les protocols spécifiques, les réponses des erreurs ne sont pas au bon format.
  • jelix scripts: pour les commandes qui ont des paramètres variables, l'erreur 'too many parameters' était toujours déclanchée.
  • jelix-scripts, la commande help de acl2right n'était pas juste

Et toutes les corrections de bogues depuis la branche 1.2.x (1.2.3, 1.2.4, 1.2.5).

Détails des changements dans la 1.3RC2

Corrections critiques

  • Vulnérabilité de type XSS dans le formulaire de login du module jauth. L'affichage du login après un échec n'était pas filtré dans le template “auth~login.form”.

Corrections

  • jDao: l'utilisation de flottant dans jDao pouvait conduire à des erreurs de syntaxe SQL sur les serveurs configuré avec la locale système fr_FR
  • ticket #1426 - régression après la mise à jour de jQueryUI: le datepicker de jforms ne s'initialisait pas avec la date de départ, mais toujours avec la date du jour.
  • Régression dans jMinify : le premier fichier css/js était minifié même quand il ne devait pas l'être

Détails des changements dans la 1.3RC3

Améliorations

  • jUnitTestCase : ajout de méthodes qui permettent d’exécuter du code avant et après l’exécution de tout les tests d'une classe.
  • Jelix-scripts : la commande createdaocrud génère maintenant des urls dans un fichier urls.xml du module, quand l'application utilise le moteur d'urls significant.
  • Jelix-scripts : nouvelle commande resetfilesrights
  • lanceur PHPUnit : ajout de l'aide sur les options spécifiques à Jelix
  • améliorations de la 1.2.5
    • Ajout de directives apache pour mod_rewrite, dans le htaccess crée pour les nouvelles applications
    • jUnitTestCase : ajouts de méthodes permettant d’exécuter du code avant et après l’exécution de tout les tests d'une classe de tests.
    • système de mise à jour : il est maintenant possible d'avoir un script de mise à jour qui sera appelée par la mise à jour de plusieurs branches d'un projet. Le ou les numéros de versions sont maintenant indiqués dans la classe de mise à jour et non plus dans le nom du fichier.

Bugs corrigés

  • regression : jAcl2db ne fonctionnait plus avec postgresql. Mauvais type de champs dans l'une des tables.
  • jAcl2 : le listener pour authlogout efface correctement le cache de jAcl2DbUserGroup.
  • jUnitests prend maintenant en compte la nouvelle API “skip” de simpletest.
  • jDaoConditions génère maintenant une exception quand la propriété indiquée n'existe pas.
  • jelix-scripts : les valeurs chmod n'étaient pas correctement prise en charge
  • jelix-scripts : la commande createapp n'utilisait pas les valeurs de newAppInfoLocale et newAppInfoCopyright.
  • Dans les tests PHPunit d'une appilcation, le coordinateur et la configuration n'était pas disponible dans les variables globales. Les tests d'un module pourraient en avoir besoin.
  • Corrections des bugs de la 1.2.5
    • jTpl : le mot “print” devrait être autorisé dans les clés de locales.
    • ticket #1427 - jDao générait une erreur de syntaxe SQL dans la clause ORDER généré pour jDaoConditions (regression)
    • Corrections de problèmes dans l’implémentation des objets mock dans simpletest.

Détails des changements dans la 1.3 finale

  • Suppression d'une possible boucle infinie dans le coeur de jelix, quand ob_end_clean échoue durant l'affichage d'une page d'erreur
  • ticket #1432 - le modificateur date_format devrait supporter les timestamp comme paramètre
  • Les redirections sont maintenant autorisées sur la plupart des types de requêtes jelix.

Autres versions

fr/changelog/1.3.txt · Dernière modification : 2011/12/19 08:38 de foxmask
Fils rss des changements récents dans le wiki Creative Commons License