Quick links: Content - sections - sub sections

Improvements provided by the version 1.8

Warning: documentation is not updated yet about all these changes.

New features

  • Jelix 1.8 is now compatible from PHP 7.4 to PHP 8.2.
  • Core:
    • new class Jelix\Core\Services that will allow to access to some services without using static methods of these service. The instance of this object is accessible from \jApp::services(). Warning: this is a work in progress.
    • binary response: support of callback function to generate content. Can be used for streams, generator etc..
    • jIncluder::incAll(): it returns now the value returned by the including of the file generated by the compiler
    • Add an interface jIActionSelector on jSelectorActFast and jSelectorAct, to allow to provide other implementation of action selector.
  • Controllers:
    • new methods redirect() and redirectUrl() that are shortcuts to the creation of a redirection object
  • jForms:
    • support of submit with xmlHttpRequest has been improved
    • new method BuilderBase::outputAllControlsValues()
    • new method BuilderBase::outputControlRawValue()
    • new method WidgetInterface::outputControlRawValue()
    • image widget: add possibility to show the temporary new image New option for the image widget: showModeForNewImage. It indicates how the new image can be display.
  • jAcl2Db admin UI:
    • the user interface has been reworked to be more usable
    • possibility to hide some rights (hiddenRights in the acl2 configuration section)
    • It is not possible anymore to set some rights on the anonymous group (acl, or related to users)
    • rights are now dependent of the view right of the same branch.
  • jEvent:
    • possibility to give an event object to jEvent::notify(). So you can have events having their own methods to manipulate information for the event.
    • Rework the implementation of the events dispatcher, to follows PSR-14. jEvent::notify() will be deprecated in futur versions, prefer to use \jApp::services()->eventDispatcher()->dispatch($event) for event objects.
  • Configurator:
    • The configurator is now able to declare automatically modules urls, and to remove all Urls of a module when it is uninstalled.
    • Module configurators can indicate a list of url to declare into the urls mapping
    • more methods on XmlMapModifier to remove urls
    • new method findProfile() on helpers
  • Installer:
    • The PreInstallHelpers class has now the database API to allows to check the content of the database before allowing the installation
    • new method findProfile() on helpers
    • new option to the installer command: --no-clean-temp. And the command verifies now that all content of the temp directory can be deleted.
  • the script runtests.php and the unit test mechanism for modules (tests inside modules) are now deprecated. It is better to write tests outside modules, in order to not include them into Composer packages or other deployment system. It also allows you to use the PHPunit version you want, or to use other unit tests framework.
  • Two new plugins for jTpl: {ifacl2and}, {ifacl2or}
  • Add Datatable into Jelix assets

New features into 1.8.1

  • jDao: records can now extend from any classes
  • jEvent: support of autoloadable classes for listeners

deprecated features

  • Unit tests into modules : jUnitTestCase and jUnitTestCaseDb are deprecated. Use \Jelix\UnitTests\UnitTestCase and \Jelix\UnitTests\UnitTestCase instead. Support of PHPUnit versions older than 6.0 is removed.


  • The template plugins swfjs, swfbiscuit and the script jquery.flash.js. Flash is dead, so no reason to keep these files.
  • $GLOBALS['JELIX_EVENTS'] does not exist anymore

Internal changes

  • Upgrade Symfony Console to 5.4.14
  • Upgrade PHPUnit to 8.5 for our tests
  • Upgrade PHPMailer to 6.6.*
  • Upgrade Jquery to 3.6.1
  • Upgrade Jquery UI to 1.13.2
  • Upgrade CKEditor to 35.3.0
  • Upgrade Datatables to 1.12.1
  • Tests with CasperJs have been removed
  • Some Javascript scripts like jforms_jquery.js are now generated with WebPack. See the assets directory in the git repository.
  • jForms: move code from template plugin to a new class TemplateController. It allows to control the display of the form in a single class instead of into several template plugins, and so, to use it into any or outside a template system.

Contributors to Jelix 1.8

  • Laurent Jouanneau
  • Adrien De Croutte (jForms Time, first version of the new jacl2db interface)
  • René-Luc D'Hont (streams into jResponseBinary, session_role option for pgsql)
  • Raphael Martin (various bug fix)
  • Joel Kociolek (fixed some issues with PHP 8, fix logout with persistant cookie)