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 eZ Publish 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 eZ Publish. Long ago it was used by the eZ Publish 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 eZ Publish 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 eZ Publish'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 eZ Publish 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, eZ Publish 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 [] 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 ===================================================== =======================================