Trace: • 1.4
Table of Contents
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 ¶
- READ THE MIGRATION TUTORIAL.
Details of changes from 1.4b1 to 1.4 ¶
Enhancements ¶
- 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 ¶
Enhancements ¶
- 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