Table des matières
Jelix 1.4 ¶
Voici la liste complète des améliorations apportées depuis la version 1.3.x, et qui sont disponibles dans la version 1.4.
Sortie le 30/08/2012.
Améliorations principales ¶
- Nouvelles méthodes: jApp::config() pour récupérer la configuration et jApp::loadConfig() pour la charger. $gJConfig est déprécié
- Nouvelles méthodes: jApp::coord() pour récupérer le coordinateur et jApp::setCoord() pour définir le coordinateur dans l'environnement Jelix. $gJCoord est déprécié
- Nouveau système d’auto-chargement. Les classes à charger automatiquement peuvent être indiquées dans le fichier module.xml de vos modules. Le système d'auto-chargement supporte la spécification PSR0
- Templates virtuels
- Nouvelle API pour utiliser le cache HTTP
- Nouvelles classes pour lire les flux Atom et RSS
- Nouvelle classe jPref pour définir et obtenir des options de configuration dynamique et fonctionnelle. Une interface permettant à un webmaster de gérer ces préférences est disponible.
- Les modules peuvent fournir leurs propres objets de réponse et les indiquer directement dans la configuration
- Les modules peuvent fournir leurs propres fichiers CSS et JS sans avoir à les placer dans le répertoire
www
- Le répertoire “plugins” des modules est maintenant automatiquement reconnu, plus besoin de le déclarer dans
pluginsPath
. - Les Jelix-scripts recherchent désormais un fichier .jelix-scripts.ini dans le répertoire courant et ses répertoires parents, avant de chercher dans le répertoire de base
- Nouveau driver jDb utilisant l'API mysqli (FlorianLB)
- jDb : plugin experimental pour sqlite3
- Support des paramètres automatiques de lang dans les URL
- Le moteur d'URL “simple” est déclaré obsolète. Il sera supprimé dans Jelix 1.5.
- Amélioration de la prise en charge des codes locales/langues. Prend en charge les codes officiels et standards, et utilise les vrais codes pays quand ils sont manquants.
- en_US devient le code locale par défaut dans Jelix. en_EN est maintenant déprécié, car c'est un code non standard.
Mettre à jour depuis Jelix 1.3.x ¶
- Voir la documentation de migration
Détails des changements de 1.4b1 à 1.4 ¶
Améliorations ¶
- Ticket #953 - prise en charge des paramètres automatiques de langue dans les URL. Les elements <param> et <static> dans urls.xml peuvent maintenant avoir un attribute type avec les valeurs 'lang' ou 'locale'. Pour ce genre de paramètre, il n'est pas nécessaire de les indiquer à
jUrl::get
, ils prennent la valeur courante de la langue. Et au traitement d'une action, la valeur courante de la langue devient celle indiquée dans le paramètre de langue de l'URL. - Amélioration de la prise en charge des codes lang et locale. Prend en charge les codes officiels et standards, et utilise les vrais codes pays quand ils sont manquants (au lieu du code langue comme auparavant, ce qui produit des codes de locales invalides). Nouvelles methodes
jLocale:getCorrespondingLocale
,jLocale:getPreferedLocaleFromRequest
etjLocale:langToLocale
. - Le paramètre de configuration
availableLanguageCode
du plugin autolocale a été déplacé vers la configuration principale sous le nomavailableLocales
. - jDb : plugin experimental pour sqlit3
- jDb: suppression du plugin Intuition, plus maintenu depuis longtemps
- Le répertoire “plugins” des modules est maintenant automatiquement reconnu, plus besoin de le déclarer dans
pluginsPath
.
Bugs corrigés ¶
- Correction sur le chargement des ressources des modules externes. (Steven jehannet)
- Suppression d'appels oubliés à $gJConfig et $gJCoord.
- jpref-admin : ajout de selectedMenuItem (Steven Jehannet)
- Correction de scripts SQL de Testapp, pour spécifier le type de table, sinon des tests pouvaient échouer sur certaines configuration de mysql (Brice Tencé)
- Suppression de la dépendance à l'extension GD de PHP dans testapp (Brice Tencé)
- Correction d'un bug dans jForms: les instances avec des id non numeriques n'étaient pas correctement supprimés après de multiples get ou create.
- Les informations des modules désactivés ne doivent pas être lu par le générateur de la configuration
Détails des changements de 1.3 à 1.4b1 ¶
Améliorations ¶
- Coeur:
- La variable globale $gJConfig est maintenant obsolète. Vous devez utiliser jApp::config() pour récupérer la configuration. Les points d'entrées doivent indiquer la configuration à utiliser avec jApp::loadConfig(), et non plus avec l'objet coordinateur.
- La variable globale $gJCoord est maintenant obsolète. Vous devez utiliser jApp::coord() pour récupérer le coordinateur. Les points d'entrées doivent stocker le coordinateur dans jApp.
- Nouvelle API pour utiliser le cache HTTP, dans les objets réponse: cleanCacheHeaders(), setExpires(), setLifetime(), isValidCache(). @FlorianLB
- jXmlResponse permet maintenant de spécifier votre propre type mime. @Thomas PT
- Dans la configuration, on peut indiquer une classe de réponse qui est stockée dans un module. Syntaxe:
{responsetype}=module:{modulename}~{classname}
. Et la classe doit être stockée dans un fichier{modulename}/responses/{classname}.class.php
. - Les méthodes isModuleEnabled et getModulePath ont été déplacée de jCoordinator vers jApp. Ces méthodes sont encore disponibles sur jCoordinator mais sont obsolètes
- nouvelle classe jAutoloader, pour pouvoir être utilisée comme chargeur automatique de classes
- Prise en charge de nouveaux elements xml dans module.xml pour indiquer les classes à charger automatiques.
- la gestion des erreurs et exceptions a été retravaillée
- Des messages plus explicites (sans pour autant être détaillée pour des raisons de sécurité) sont maintenant affiché sur la page d'erreur au démarrage
- Nouveau plugin de coordinateur pour tracer les executions (FlorianLB)
- Les actions dans les controllers peuvent maintenant être implémentés avec
__call
(flav)
- jUrl
- Nouvelle méthode getRootUrl($keyword) (et un plugin jTpl correspondant) pour associer des urls à des mots clés. @bricet #1073
- jTpl:
- Templates virtuels. Vous pouvez utiliser jTpl avec des simple chaînes (et non pas obligatoirement des fichiers comme dans les versions précédentes) : jTpl::fetchFromString(). @doubleface, @laurentj, #545
- Nouvelles instructions meta dans les templates : meta_if, meta_else, meta_endif. @bricet
- plugins: ajout de la prise en charge de IE8 et IE9 dans meta_html
- jDao:
- Nouvelle méthode jDaoRecordBase::save. (Sid-Ali Djenadi)
- jAuth:
- nouvelle fonction de hash bcrypt() utilisant les algorithmes blowfish. @FlorianLB
- jAcl, jAclDb and jAcl2Db utilisent maitnenant le nouveau système autoload. Toutes les classes jAclDb* et jAcl2Db*, ainsi que les plugins de coordinateur acl et acl2, ont été déplacés dans leurs modules respectifs.
- Utilitaires:
- Nouvelles classes pour récupérer et parser les flux Atom et RSS: jAtom10Reader et jRSS20Reader. Les données retournées sont compatibles avec les réponses qui génèrent des flus Atom et RSS. @FlorianLB #23
- jIniFileModifier: nouvelles methodes getValues et setValues
- nouvelle classe jPref : un système pour stocker des options de configuration dynamiques (qui ne sont pas des options systèmes du framework). Une interface est disponible pour l'administration, pour gérer toutes ces préférences. jPref utilises jKVDb comme moyen de stockage.
- Jelix-scripts:
- le système de commande cherche maintenant le fichier .jelix-scripts.ini dans le répertoire courant et les répertoires parents, avant de chercher dans le répertoire de l'utilisateur.
- createapp genères maintenant un fichier .gitignore et un fichier .dummy dans les repertoires vides, ce qui permet d'inclure ceux-ci dans un dépôt Git.
- la debug bar est activée par défaut quand on créé une nouvelle application avec createapp