Changes to BC and behaviour in version 4.1.0
============================================
Requirement changes
-------------------
- New eZ Components being used:
- SystemInformation
- Archive
Deprecated features
-------------------
- eZArchiveHandler
This class and related sub-classes, such as eZTARArchiveHandler has been
deprecated, they will be removed in Exponential 4.2. Archive from eZ Components
is the intended replacement of this functionality.
- eZFile::getContents()
The method getContents() of eZFile is deprecated now, use file_get_contents()
instead.
- eZModuleManager
The whole eZModuleManager class is deprecated now, in favor of the setting
[ModuleSettings] ModuleList in module.ini
- eZImportLookupTable
This class is deprecated and will be removed from future versions of Exponential.
Long ago it was used by the Exponential package system.
- eZExtension::findExtensionType
This method is now deprecated and even though it is still in the code, we
highly recommend to use the new eZExtension::getHandlerClass which takes
advantage of the autoload features. Porting the current kernel to use
this new method is planned and will be done step by step.
- 'aliased_type' attribute on xml handlers (input and output)
This attribute now always returns false after the changes in the handler loading code,
and is not used in 'aliased_handler' anymore.
Removed features
----------------
- eZSelectionType loose functions
The file in which eZSelectionType is defined contained two loose functions,
namely serializeContentObjectAttribute and unserializeContentObjectAttribute,
which at the time of introducing them were supposed to be inside the class
definition. These two functions have been removed.
- eZFilePasstroughHandler
The deprecated class eZFilePasstroughHandler was removed. Use
ezFilePassthroughHandler instead.
- eZXMLInputType
The class eZXMLInputType, which was not any longer used by any part of the eZ
Publish kernel, has been removed.
- eZURLTranslator
The class eZURLTranslator, which was not any longer used by any part of the eZ
Publish kernel, has been removed.
- eZDebugErrorHandler()
The eZDebugErrorHandler() function that was declared in lib/ezutils/classes/ezdebug.php,
has been removed. The new function eZDebug::recursionProtectErrorHandler() is
used now as custom error handler.
- OpenFTS search plugin
There existed some code to use OpenFTS as a search engine. This code was never completed
though, and in an unusable state. Therefore it has been removed.
- eZXML
The deprecated eZXML library, a non-standard-compliant DOM implementation, has been removed.
- eZReference
The refence module from the kernel has been removed.
- Embed template override rules inheritance
In order to able to fix "#014328: Nested embedding override issue" inheritance of the
embed template override rules are removed, this was a undocumented & unknown feature.
New constants in config.php
---------------------------
EZP_INI_FILEMTIME_CHECK
This new setting controls whether eZINI should check if the settings have
been updated in the *.ini-files*. If this check is disabled Exponential
will always used the cached values, lowering the amount of stat-calls to
the file system, and thus increasing performance.
EZP_AUTOLOAD_ALLOW_KERNEL_OVERRIDE
This setting controls if Exponential's autoload system should allow, and
load classes, which override kernel classes from extensions.
EZP_USE_BUNDLED_COMPONENTS
If you are using a distribution of Exponential with which the necessary
eZ Components are bundled (in lib/ezc), then you can use this setting to
control if the bundled eZ Components should be used (true) or not (false).
By default, when this setting is not present, the bundled eZ Components are
used. If you're using the bundled eZ Components it's recommended to define
EZP_USE_BUNDLED_COMPONENTS as a boolean true anyway, for optimal speed.
EZC_BASE_PATH
If you are not using the bundled eZ Components, then for optimal speed it is
recommended to set EZC_BASE_PATH to either ezc/Base/base.php or Base/src/base.php,
depending on how you installed the eZ Components. By default, if this setting
is not present, Exponential first tries to include ezc/Base/base.php. If that fails
Base/src/base.php is included.
EZP_AUTOLOAD_OUTPUT
This setting sets the class name for a custom class to use to handle
autoload generation output. The class has to be of the ezpAutoloadOutput
type. Since autoloads are being used, this class needs to be loaded in
config.php, or bootstrapped with some method before the script itself runs.
Changes to method signatures
----------------------------
- eZContentObject - fetchAttributesByIdentifier
Parameter 3 is changed to be an array of locale codes, rather than a string
with locale code.
- eZDBClusterFileHandler - getFileList
The parameters have been completely changed. Earlier, getFileList() accepted
2 booleans to define if files in the scopes 'binaryfile' and 'image' should
be omitted. Now the method accepts an array of scopes of the files you want
to be returned, and a boolean with which you can reverses the behavior so
that all files in the scopes in the array are excluded.
- eZRSSExport::fetchRSS2_0() and fetchRSS1_0
These methods do not any longer accept the ID of the RSSExport as a parameter.
Use eZRSSExport::fetch() first to fetch the instance by its ID.
- eZURLAliasML - fetchByAction
For this method the already existing parameter *$maskLanguages* have been
reused. For boolean values the old logic will be triggered, for string
values entries will be filtered with the locale's language mask.
*$onlyprioritized* will not have any effect, when a locale is specified in
*$maskLanguages*.
- eZURLAliasML - getPath
New *$locale* parameter introduced. When *$locale* is used, it will override the
default filtering in the *choosePriortizedRow()* method.
- eZURLAliasML - fetchPathByActionList
*$locale* parameter added, with fallback to normal behaviour.
Change of behaviour
-------------------
- eZDBInterface - constructor
An eZDBNoConnectionException exception will be thrown when a connection to the
database cannot be established (typically called from $db = eZDB::instance())
- eZContentClass - __clone
A clone of an instance of eZContentClass will have a new remote ID, while
before it had the same remote ID as its original.
- eZCharTransform does not any longer have a member variable $Mapper, because
it caused wrong transformation rules to be used when calling
eZCharTransform::transformByGroup multiple times with another value for its
$group parameter.
- eZMail - validate
This method now returns the value of preg_match directly, instead of using
ereg. This means that return values of this method now is 1 for a valid
address, and 0 for an invalid address.
- eZDBFileHandler - $metaData
This property now defaults to null. When metadata are fetched and not found
(file does not exist), it is set to false. When requested again, and value is
false, no DB check will be performed until $force is set to true
- eZDBFileHandler - $useStaleCache
This private property is used to switch execution to stale cache mode for the
current cache file. It defaults to false.
- eZDBFileHandler - $realFilePath
This private property is used to backup the cache file real path when
switching to stale cache mode, since $filePath will be set to the generating
file path.
- eZDBFileHandler - isFileExpired
This new static method replaces isExpired. It is either called manually with
a filepath, or by the two new methods, isLocalFileExpired and isDBFileExpired.
- eZDBFileHandler - isLocalFileExpired
This new method checks the local file ($this->filePath) expiry status against
a given mtime / ttl
- eZDBFileHandler - isDBFileExpired
This new method checks the DB file expiry status against a given mtime / ttl.
- eZDBFileHandler - startCacheGeneration
New method used to start the cache generation process for the current file.
- eZDBFileHandler - endCacheGeneration
New method used to start the end generation process for the current file.
- eZDBFileHandler - abortCacheGeneration
New method used to abort the cache generation process for the current file.
- eZDBFileHandlerMysqlBackend - _exists
Added a new optional parameter, $ignoreExpiredFiles, defaults to true. If set
to false, files that exist in the database but are expired by mtime or
expired fields will be considered as existing.
- eZDBFileHandlerMysqlBackend - _startCacheGeneration
New method used by the equivalent eZDBFileHandler method.
- eZDBFileHandlerMysqlBackend - _endCacheGeneration
New method used by the equivalent eZDBFileHandler method.
- eZDBFileHandlerMysqlBackend - _abortCacheGeneration
New method used by the equivalent eZDBFileHandler method.
- eZContentOperationCollection::setVersionStatus()
This method now uses the $status parameter as is, that means $status needs
to be one of the eZContentObjectVersion::STATUS constants.
- eZContentOperationCollection::operationIsAvailable()
This method returns true or false wether an operation is available
in workflow.ini/[OperationSettings]/AvailableOperationList
The new triggers are actually new operations on which we added pre and post triggers,
except for content_read which only contains a "pre" trigger and no "post" trigger.
- eZLDAPUser::loginUser (as of 4.1.1 and 4.2.0Alpha1)
ldap.ini setting LDAPFollowReferrals is introduced and set to 0 by default as
ldap code did not work with most AD setups. LDAP_OPT_REFERRALS was earlier not
set at all, thus enabled.
INI setting changes
-------------------
This section talks about the handler settings that have been deliberately broken
in 4.1 to be able to reduce system calls by loading handlers using the autoload system.
image.ini
[ImageConverterSettings]
RepositoryList[], ExtensionList[] and ImageHandlerAlias[] are no longer in use
[<ImageConverters, example: GD and ImageMagick>]
Handler= this setting now expects class name instead of file name
file.ini
[BinaryFileSettings]
Handler= this setting now expects class name instead of file name
Repositories[] and ExtensionRepositories[] are no longer in use
[ClusteringSettings]
FileHandler= this setting now expects class name instead of file name
DBBackend= this setting now expects class name instead of file name
ExtensionDirectories[] are no longer in use
ezxml.ini
[InputSettings]
Handler= are no longer in use
HandlerClass= new setting for Handler that expects class name as value
Alias[] are no longer in use
AliasClasses[] new setting for Alias that expects class name as key and value
[OutputSettings]
Handler= are no longer in use
HandlerClass= new setting for Handler that expects class name as value
Alias[] are no longer in use
AliasClasses[] new setting for Alias that expects class name as key and value
package.ini
[PackageSettings]
HandlerAlias[]= this setting now expects class name instead of file name
CreationSettings]
HandlerAlias[]= this setting now expects class name instead of file name
[InstallerSettings]
HandlerAlias[]= this setting now expects class name instead of file name
Renamed constants
-----------------
===================================================== =======================================
Old constant New constant
===================================================== =======================================
eZURLWildcard::EZURLWILDCARD_REGEXP_ARRAY_CALLBACK eZURLWildcard::REGEXP_ARRAY_CALLBACK
eZURLWildcard::EZURLWILDCARD_TRANSLATE_CALLBACK eZURLWildcard::TRANSLATE_CALLBACK
eZURLWildcard::EZURLWILDCARD_CACHED_TRANSLATE eZURLWildcard::CACHED_TRANSLATE
eZURLWildcard::EZURLWILDCARD_WILDCARDS_PER_CACHE_FILE eZURLWildcard::WILDCARDS_PER_CACHE_FILE
eZURLWildcard::EZ_URLWILDCARD_TYPE_NONE eZURLWildcard::TYPE_NONE
eZURLWildcard::EZ_URLWILDCARD_TYPE_FORWARD eZURLWildcard::TYPE_FORWARD
eZURLWildcard::EZ_URLWILDCARD_TYPE_DIRECT eZURLWildcard::TYPE_DIRECT
eZURLWildcard::EZ_URLWILDCARD_CACHE_SIGNATURE eZURLWildcard::CACHE_SIGNATURE
===================================================== =======================================
Changes to BC and behaviour in version 4.1.0
New eZ Components being used: - SystemInformation - Archive
Address: https://doc.exponential.earth/exphelp/viewer/bc/4.1/changes-4.1.0.txt
Documentation license
This page was inherited from the documentation of the original software. It is not covered by the GNU Free Documentation License; it is distributed under the GNU General Public License, version 2.
Copyright (C) 1999 - 2014 eZ Systems AS and contributors