/
extension_ordering.txt
58 lines (42 loc) · 2.35 KB
/
extension_ordering.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Extension ordering
==================
Intro
-----
In eZ Publish 4.4, a mechanism has been added that enables extensions to define
in which order they should be loaded in regards to other, related, extensions.
Requirements
------------
For this mechanism to be active, extensions should be recent enough to contain
the needed metadata which are stored into a *extension.xml* file contained at
the root directory of the extension.
Configuration
-------------
For the ordering to be active, the following configuration setting should be
enabled in *site.ini.append.php*:
::
[ExtensionSettings]
ExtensionOrdering=enabled
Caching
-------
Since this feature will increase each request processing time, the results are cached. This cache is stored differently
depending on the active siteaccess and requested extensions level (global, siteaccess or both). It will contain the
final, sorted if enabled (see "Configuration"), active extensions array.
This cache can be cleared in multiple ways:
- Using the setup/cache GUI, through the "Active extensions" checkbox at the bottom;
- By clearing INI cache using the button in the top block on the ``setup/cache`` GUI;
- By clearing INI cache from the command line using ``bin/php/ezcache.php --clear-tag=ini``
- By clearing this specific cache from the command line using ``bin/php/ezcache.php --clear-id=active_extensions``
This will be done automatically when enabling the extension from the ``setup/extensions`` GUI.
extension.xml syntax
--------------------
This file contains three types of ordering information, semantically formatted as dependency information instead.
This is on purpose, as this wider syntax will let us implement extension inter-dependencies without requiring any
change to this file's syntax.
Load ordering nodes are to be
* *dependsOn*: indicates that this extension depends on the documented extension to run. Strong dependency.
Interpreted as 'after' in the loading.php implementation
* *uses*: indicates that this extension uses features from the documented extension to run. Weak dependency.
Interpreted as 'after' as well in the loading.php implementation
* *extends*: indicates that this extension overrides some features (usually design, also settings) from the documented
one. Interpreted as 'before' in the loading.php implementation.
See doc/features/4.4/extension_xml.txt for a complete example.