Quick links: Content - sections - sub sections
EN FR

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.4.
  • 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

New features into 1.8.2

  • New API to manage entrypoints into installation scripts

New features into 1.8.3

  • New method setHtmlAttributes() on the jResponseHtml class
  • New method getFileResponse() in jController to ease to return a file as a response
  • jauthdb_admin module:
    • New event jauthdbAdminAfterUpdate when properties of a user has changed.
    • new events jauthdbAdminPasswordForm and jauthdbAdminCheckPasswordForm for the password form
  • jauthdb:
    • possibility to authenticate with the email or the login, if there is a configuration parameter authenticateWith=login-email.
    • the section auth_<driver> is now merged with the <driver> section of auth.coord.ini.php, so we can redefine some configuration parameter of the <driver> section, into localconfig.ini.php for example.
    • new method getDao() on the jAuth db driver
  • new class jAuthPassword to check the strength of a password or to generate a random password
  • new jforms widget: password_html for secret controls. Adds a "view" button aside the input.
  • new jforms widget: passwordeditor_html for secret controls. It checks the strength of the password.
  • new method jAcl2DbUserGroup::renameUser()
  • new configuration parameter to set default value for the Return-Path header into jMailer.

New features into 1.8.4

  • new method jResponseFormJQJson::setError() to force to return an error message/url redirection to the form.
  • New: Support of favicons into WebAssets (ex: mygroup.icon=favicon-32x32.png|sizes=32x32).
  • new method WebAssetsSelection::getIconLinks()

New features into 1.8.5

  • jacl2db_admin: add links to each user profile into the users list
  • The application version is available into jApp::config()->appVersion and is set by default to the version stored into the project.xml file.
  • new configuration parameter sslmode for Postgresql profiles. Possible values are disable, allow, prefer, require.

New features into 1.8.6

  • ldap driver for jAuth: support of TLS mode. Configuration parameter tlsMode, which can have values "" (empty, no secured connection), starttls or ldaps (ldaps by default if port 636)

New features into 1.8.7

jForms: in javascript, the form is now declared after the setup of all controls, not only after the setup of the jforms object. So the event jformsready is triggered and the callbacks declared with onFormReady are executed after the full initialization of the javascript objects of jForms. If you want to keep the old behavior, you should indicate the option 'deprecatedDeclareFormBeforeControls'=>true to the form builder.

New features into 1.8.10

New template plugin ctrl_value_assign for jForms.

New features into 1.8.11

Support of the alias attribute on the entrypoint element into urls.xml.

New features into 1.8.12

Support of error page for any locales, into app/responses/ : error.fr_FR.php, error.de_DE.php...

New features into 1.8.14

  • jForms: improvements into TemplateController for some external template plugins
  • new template plugin ifctrlactivated for jForms
  • Fix compatibility with PHP 8.4

New features into 1.8.16

  • New datasource class for jForms: jFormsDynamicStaticDatasource
  • Add $httpCode and $httpMessage in template for html errors

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.

Removes

  • 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)