Message-ID: <282639364.4250.1485862013648.JavaMail.confluence@ip-10-127-227-164> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_4249_411254882.1485862013647" ------=_Part_4249_411254882.1485862013647 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html Extension load ordering

Extension load ordering

Introduction

In eZ Publish 4.4 and higher, there is a mechanism that enables extensio= ns to define in which order they should be loaded in regards to other, rela= ted, extensions. The function automates the extension load ordering to help= avoid situations where extensions does not work properly in case= of wrong order.

Requirements

For the extension load ordering mechanism to be active, extensions shoul= d be recent enough to contain the needed metadata stored in the "exte= nsion.xml" file, so make sure you use the extensions certified for y= our eZ Publish version (see: Technical manual / <version> / Inst= allation / Requirements ).

Configuration

To activate the extension load ordering, the following configuration set= ting should be enabled in "site.ini.append.php" in setting/ove= rride:

=20
[ExtensionSettings]
ExtensionOrdering=3Denabled
=20

Extension ordering

The order in which active extensions appear in the "site.ini" under <eZ_Publish_root_folder>/ezpublish_legacy= /settings/override/site.ini "[ExtensionSettings] = ActiveExtensions=3D" is important for the selection of templates and= , possibly, configuration settings. For this reason, users must insure that= the correct order is used for extensions that have dependencies on other e= xtensions. For example eZ Find must be activated before eZ Webin. The same = rule applies for the eZ Teamroom extension: eZ Teamroom and all its depende= nt extensions, such as eZ Lightbox and eZ Event, need to be activated befor= e eZ Webin.

Although extensions can be activated using the Administrator Interface, = as for now the admin interface does not provide a way to re-order the exten= sions, manually or automatically. This implies that the order can only be d= efined in site.ini.

Defining the correct order can sometimes be tricky when many extensions = need to be considered. By providing metadata to the extension loading, manu= al extension load ordering is now a thing of the past.

Metadata

By providing metadata for the extension load ordering we enable eZ Publi= sh to correctly determine the correct order itself. The metadata about exte= nsion ordering is optional. These metadata are now declared using an XML fi= le, that can also be used to replace what is currently in "ezinfo.php= ". This file is named "extension.xml", located at the r= oot of the extension. It has the following content:

=20
<?xml version=3D"1.0" encoding=3D"utf-8" ?>
 <software>
     <metadata>
         <name>Extension name</name>
         <description>Extension description</description>
         <version>X.Y.Z</version>
         <copyright>Copyright text</copyright>
         <license>License type</license>
         <info_url>http://url/to/extension/site</info_url>
         <author>Extension author</author>
=20
         <software>
             <uses>
                 <name>Used library/software 1</name>
                 <license>Used library/software 1  license</licens=
e>
                 <copyright>Used library/software 1  copyright</co=
pyright>
                 <info_url>Used library/software 1  URL</info_url&=
gt;s
                 <version>Used library/software 1  version</versio=
n>
             </uses>
            <uses>
                <name>Used library/software 2</name>
                <license>Used library/software 2  license</license=
>
                <copyright>Used library/software 2  copyright</cop=
yright>
                <info_url>Used library/software 2  URL</info_url&g=
t;s
                <version>Used library/software 2  version</version=
>
            </uses>
=20
         </software>
=20
     </metadata>
=20
     <dependencies>
         <uses>
             <extension name=3D"usedExtension" />
         </uses>
        <requires>
            <extension name=3D"requiredExtension" />
        </requires>
         <extends>
             <extension name=3D"extendedExtension" />
         </extends>
     </dependencies>
=20
 </software>
=20

 

The first block (software/metadata) replaces "ezinfo.php". = The fields are equivalent to those found in the info() method of the 'old' = ezinfo. The sub-node software/metadata/software replaces the previous 3rdpa= rty_libraries entry. One software/metadata/software/uses node must be used = for each library.

The second block (software/dependencies) contains 3 sub-nodes:

Note: 'uses' and 'requires' currently have the same eff= ect, but their behavior will change when real dependencies checking is deve= loped in the future.

Know issue

  1. Extension load ordering breaks possibility to define your cluster ( file.ini) settings for siteaccess and extensions as the functi= onality loads cluster before extension and siteaccess settings are loaded.
  2. Extension load ordering has a small impact on performance

In both cases work around is to disable extension load ordering.

------=_Part_4249_411254882.1485862013647--