Chapter: New features
^ Introduction | Migrating from a previous version » |
− Table of content
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
onjSelectorActFast
andjSelectorAct
, to allow to provide other implementation of action selector.
- new class
- Controllers:
- new methods
redirect()
andredirectUrl()
that are shortcuts to the creation of a redirection object
- new methods
- 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 theacl2
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.
- possibility to give an event object to
- 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
- 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 thejResponseHtml
class - New method
getFileResponse()
injController
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
andjauthdbAdminCheckPasswordForm
for the password form
- New event
- 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 ofauth.coord.ini.php
, so we can redefine some configuration parameter of the<driver>
section, intolocalconfig.ini.php
for example. - new method
getDao()
on the jAuthdb
driver
- possibility to authenticate with the email or the login, if there is a configuration parameter
- new class
jAuthPassword
to check the strength of a password or to generate a random password - new jforms widget:
password_html
forsecret
controls. Adds a "view" button aside the input. - new jforms widget:
passwordeditor_html
forsecret
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 theproject.xml
file. - new configuration parameter
sslmode
for Postgresql profiles. Possible values aredisable
,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
orldaps
(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
andjUnitTestCaseDb
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 scriptjquery.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 theassets
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)