Quick links: Content - sections - sub sections

Trace: 1.4

Jelix 1.4

This page is listing updates and enhancements added since 1.3.x version, and that are available in the 1.4 version.

Release date: 08/30/2012

Main improvements

  • new jApp::config() method, to retrieve the configuration and new jApp::loadConfig() to load the configuration. $gJConfig is deprecated.
  • new jApp::coord() method, to retrieve the coordinator and new jApp::setCoord() to set the coordinator into the Jelix environment. $gJCoord is deprecated.
  • new autoload system. Classes to autoload can be indicated into module.xml file of your modules. The autoload system support the PSR0 specification
  • virtual templates
  • new API to support HTTP cache
  • new classes to read Atom and RSS feeds
  • new class, jPref, to set and get dynamic/functionnal configuration options. An interface is available to allow a webmaster to manage these preferences.
  • modules can provide their own response object and indicate them directly into the configuration
  • modules can provide their own CSS and JS file without copying them into the www directory
  • The plugins directories of modules are now automatically registered, no need to indicate them into pluginsPath.
  • Jelix-scripts now searches a .jelix-scripts.ini in the current directory and its parent directories, before searching in the home directory
  • New jDb driver using the mysqli API (FlorianLB)
  • jDb: experimental driver for sqlite3
  • Support of automatic language parameter in URLS.
  • “simple” URL engine is deprecated. Will be removed from Jelix 1.5
  • Improved support of locale/lang: supports now only official lang code, and use real country code when it is not given.
  • en_US becomes the default locale of Jelix. en_EN is now deprecated, since it is not a valid language code

Migrating from Jelix 1.3.x

Details of changes from 1.4b1 to 1.4


  • Ticket #953 - Support of automatic language parameter in URLS. static and param elements in urls.xml can now have a type attribute with 'lang' or 'locale' value. For param elements of these types, there is no need to give them when calling jUrl::get.> At startup, the language in jApp::config()→locale is set automatically with the value of the param or static element that have a type 'lang' or 'locale'.
  • Improved support of locale/lang. It don't add same value as lang for country when country doesn't exist, since it has no sens for most of offical locales. new methods getCorrespondingLocale, getPreferedLocaleFromRequest and langToLocale on jLocale.
  • The configuration parameter availableLanguageCode of the autolocale plugin has been moved to the main configuration and renamed to availableLocales.
  • jDb: experimental driver for sqlite3
  • jDb: removed Intuition plugin. not maintened anymore.
  • The plugins directories of modules are now automatically registered

Bugs fixed

  • fixed for resources in external modules (Steven jehannet)
  • Removed some forgotten gJConfig and gJCoord call..
  • admin-module jpref ui : added selectedMenuItem (Steven Jehannet)
  • Fixed SQL script of Testapp, to specify table type, else some tests could fails with some mysql server (Brice Tencé)
  • Fixed issues with the new mysqli plugin (Brice Tencé)
  • Remove a dependancy of testapp to php's gd module (Brice Tencé)
  • Fixed bug in jforms: instance with non numerical ids were not correctly destroy after several ::get or ::create.
  • informations about modules should not be loaded when there are deactivated

Details of changes from 1.3 to 1.4b1


  • Core
    • the global variable $gJConfig is now deprecated. You should use jApp::config() instead, to retrieve the configuration. Entry points should indicate the configuration file with jApp::loadConfig(), not with the coordinator.
    • the global variable $gJCoord is now deprecated. You should use jApp::coord() instead, to retrieve the coordinator. Entry points should store the coordinator into jApp, not into $gJCoord.
    • New HTTP cache API on response object: cleanCacheHeaders(), setExpires(), setLifetime(), isValidCache(). @FlorianLB
    • jXmlResponse allows now to specify your own mime type. @Thomas PT
    • in the configuration, we can indicate a response class which is in a module. Syntax: {responsetype}=module:{modulename}~{classname}. And the response class should be store into a {modulename}/responses/{classname}.class.php.
    • Methods isModuleEnabled and getModulePath have been moved from jCoordinator to jApp. These methods are still availabled on jCoordinator but deprecated
    • new class jAutoloader, to be used as a class autoloader
    • support of new elements into module.xml to indicate classes (or class pattern) for the autoloader.
    • rework the errors/exceptions handlers
    • Short error message is now displayed on the error page at startup
    • New coordinator plugin to trace execution (FlorianLB)
    • actions in controllers can be implemented with __call (flav)
  • jUrl
    • new method getRootUrl($keyword) (and a jTpl plugin) to associate some urls to keywords. @bricet #1073
  • jTpl:
    • virtual templates. You can use jTpl with simple strings (not readed from files): jTpl::fetchFromString(). @doubleface, @laurentj, #545
    • new meta instructions: meta_if, meta_else, meta_endif. @bricet
    • plugins: added support of IE8 and IE9 in meta_html
  • jDao:
    • new method jDaoRecordBase::save. (Sid-Ali Djenadi)
  • jAuth:
    • new hash function bcrypt() using blowfish algorithm. @FlorianLB
  • jAcl, jAclDb and jAcl2Db use the new autoload system. All jAclDb* and jAcl2Db* classes, and coord plugins acl and acl2, have been moved into their respective modules.
  • Utils:
    • new classes to retrieve and parse Atom and RSS feeds: jAtom10Reader and jRSS20Reader. Compatible with responses that generates Atom and RSS feeds. @FlorianLB #23
    • jIniFileModifier: new methods getValues and setValues
  • new class jPref : a system to store dynamic configuration options (not system options for the framework). An interface is available to allow a webmaster to manage these preferences. It uses jKVDb as storage backend.
  • Jelix-scripts:
    • now searches a .jelix-scripts.ini in the current directory and its parent directories, before searching in the home directory
    • createapp now generates a .gitignore file and .dummy files in empty directories so they can be included into a repository
    • the debugbar is activated by default on new application created with the createapp command

Bugs fixed

en/changelog/1.4.txt · Last modified: 2012/08/30 11:21 by laurent

Recent changes RSS feed Creative Commons License