Changes to BC and behavior  in version 4.3.0
============================================

INI setting changes
-------------------

- AvailableSiteAccessList[]=admin

  admin siteaccess is no longer enabled by default in default settings.



Change of behavior
-------------------

- Subversion revision number of eZ Publish is not accessible anymore.

  With the move to git, there is no such info anymore. This is not going to be
  replaced as the full version of eZ Publish is descriptive enough.

  Functions eZPublishSDK::revision() and eZSetupFunctionCollection::fetchRevision()
  has been removed as well as constants
  'VERSION_REVISION_STRING' and 'VERSION_REVISION' from class eZPublishSDK.


- Session does not start for anonymous users before it is needed

  Meaning if you use fetch function to get number of anonymous users it will not include anonymous
  users that have not gotten a session (this happens when she goes to things like user/register or content/edit)
  will not be included. LastAccessesURI / LastAccessedModifyingURI is also not stored before user gets a session.
  Set site.ini/Session.ForceStart to enabled to get old behavior.


- session_write_close()

  Because of above change in session behaviour, you should not call this function directly but instead
  use eZSession::stop() that have been available since 4.1.0. Ref http://issues.ez.no/017037


- Session handler uses native php handler by default (normally: file, this is defined in php.ini)

  This makes all fetch functions that is related to logged in users to not work, and it's not longer
  possible nor needed to clear/expire sessions from admin interface or command line interface.
  To get old behavoir back, enable db handler by setting site.ini/Session.Handler to ezpSessionHandlerDB


- eZExtension::activateExtensions()

  Default value of of first parameter has been changed from false to 'default', see deprecation note bellow on this function.


- eZOperationHandler::operationIsAvailable()

  The $name parameter for this method is no longer optional. It did return false anyway if the parameter was omitted.


- ezHTTPTool::sendHTTPRequest()

  1. $uri parameter can now contain port number, and this is used if $port is set to false(default), port 80 will be used
     if port is not set in $uri or explicit in $port.
  2. $uri parameter was earlier documented to support "ssl://example.com/path" uri, this was not the case and this is no
     longer documented as supported. https:// was and is still supported.
  3. Additionally a $cookies parameter is added to set http header value for cookies.


- ezmodule() template operator

  This operator now also considers ModuleList setting before it checks SiteAccessRules to look for deny rules.


- $object.main_node.name in template

  main_node.name returns the node name in current node language, not in the initial language as before. Ref:http://issues.ez.no/16395.


- SiteURL setting

  The site.ini\[SiteSettings]\SiteURL setting is now increasingly being used throughout the kernel for reverse lookups of siteaccess urls.
  As an effect documentation on it has been expanded in site.ini to reflect that it can not start with protocol ('http://') and that it
  can not end with a slash. For 4.4, static cache and language switcher will use SiteURL in most cases.
  There is also a new setting called SiteUriParts, this is used in cases where siteaccess is changed during execution unless code that
  does the change specify uri_part in code. Aka you should specify this setting pr siteaccess if you use host_uri or URI map matching.


Deprecated functionality
------------------------

- eZTemplate->setVariableRef() functions

  This function has not set variables by reference since before
  4.0 (in php4 versions), hence it is now deprecated and setVariable()
  should be used instead.

- Third parameter ($attrs) on eZTemplate->hasVariable() and ->variable() functions

  This parameter where not used at all in the kernel and will be removed in a
  future versions.

- LastAccessesURI & LastAccessedModifyingURI session variables

  These variables represent state and should not use sessions*, we will migrate eZ Publish to
  use post parameters in the future, and we recommend you to do the same for your custom code.
  * breaks when you have multiple windows open, something power users frequently do.

- eZExtension::activateExtensions( false )

  Strict error will be thrown if first parameter is false as of this version.
  Reason is that changes in ini system requires clearer separation between access and default
  extensions. Thus extension loading should be done in at least two phases, normally with siteaccess
  loading in between like index.php does and always have done it.

- eZINI::parameterSet()

  This function has been deprecated in favour of using the normal and more efficient:
  eZINI::instance('<file>.ini')->hasVariable('SomeSection', 'SomeSetting')

- INI file suffix *.ini.php & *.ini.append

  This ini suffix types have been deprecated, please use *.ini or *.ini.append.php

- eZFile::splitLines( $file )

  Use native "file( $file, FILE_IGNORE_NEW_LINES )" instead.

- design/admin

  Old admin design is deprecated and will be removed in the next version.
  admin templates in extensions will continue to work thanks to design fallback:
  [DesignSettings]
  SiteDesign=<my_admin_design>
  AdditionalSiteDesignList[]=admin2
  AdditionalSiteDesignList[]=admin

- eZUser::PASSWORD_HASH_CRYPT

  The hash type of eZUser::PASSWORD_HASH_CRYPT is as of 4.4.0 deprecated, it is
  not recommended to use this type, as the output of ``crypt()`` varies from
  platform to platform, and between PHP versions 5.2.x and 5.3.x. Support for
  this type is planned removed in Matterhorn.

- site.ini\[RoleSettings]\UserPolicyCache

  Not used anymore in the kernel, site.ini\[RoleSettings]\EnableCaching still persists.

- AvailableSiteAccessList[]=admin

  Admin siteaccess has been deprecated as it is not used by any of current installers since many
  of the settings needed for a admin siteaccess needs to be written by the installer dynamically.

Renamed methods
---------------

Removed features
----------------

- Template variable 'ezinfo' is not defined by default anymore. It used to
  contain keys: 'version', 'version_alias' and 'revision'.
  Those information may still be retrieved using eZPublishSDK's functions,
  except for the 'revision' key.

- Section ID no longer global

  Like other session related topics mentioned above, previous eZ Publish versions remembered section id state for
  use as override option on pages that had nothing to do with section (non content related) like user/login.
  This is no longer supported.

- Session Validation

  Session validation as added in 4.1 has been removed, this feature was flawed and caused issues in several cases.
  Only use case left where intranets, and there exist far better solutions for securing these (VPN / IP filtering).
  This means the following settings in site.ini\[Session] have been removed:
  SessionValidationIpParts, SessionValidationForwardedIpParts & SessionValidationUseUA

- Older versions of ezlupdate

  Versions of ezlupdate source code linking against QT3 and QT4 are no longer
  bundled with eZ Publish. Only QT version 4.5 is bundled from now on.

Removed methods
---------------

- eZCharTransform::varExportInternal()

  This private function was removed as it is not needed on php 5 and was not used anywhere.

Removed globals
---------------

- eZINIOverrideDirList

  eZINI now uses a private static variable to keep track of override folders, new api calls have
  been added to be able modify it. ->overrideDirs() will still return an iterable list of dirs
  but has a new parameter to specific if you'd want to get the internal raw structure instead.

