Skip to content

[Session Configuration] add clarifying notes on session save handler proxies #3423

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions components/http_foundation/session_configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,12 @@ PHP or provided by PHP extensions, such as PHP-Sqlite, PHP-Memcached and so on.
All native save handlers are internal to PHP and as such, have no public facing API.
They must be configured by ``php.ini`` directives, usually ``session.save_path`` and
potentially other driver specific directives. Specific details can be found in
docblock of the ``setOptions()`` method of each class.
the docblock of the ``setOptions()`` method of each class. For instance, the one
provided by the Memcached extension can be found on `php.net/memcached.setoption`_

While native save handlers can be activated by directly using
``ini_set('session.save_handler', $name);``, Symfony2 provides a convenient way to
activate these in the same way as custom handlers.
activate these in the same way as it does for custom handlers.

Symfony2 provides drivers for the following native save handler as an example:

Expand Down Expand Up @@ -61,7 +62,7 @@ Example usage::
Custom Save Handlers
--------------------

Custom handlers are those which completely replace PHP's built in session save
Custom handlers are those which completely replace PHP's built-in session save
handlers by providing six callback functions which PHP calls internally at
various points in the session workflow.

Expand Down Expand Up @@ -234,6 +235,11 @@ PHP 5.4 functionality if it is available.
Save Handler Proxy
~~~~~~~~~~~~~~~~~~

A Save Handler Proxy is basically a wrapper around a Save Handler that was
introduced to support seamlessly the migration from PHP 5.3 to PHP 5.4+. It
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to seamlessly support

further creates an extension point from where custom logic can be added that
works independently of which handler is being wrapped inside.

There are two kinds of save handler class proxies which inherit from
:class:`Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractProxy`:
they are :class:`Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeProxy`
Expand Down Expand Up @@ -263,3 +269,4 @@ without knowledge of the specific save handler.

.. _`php.net/session.customhandler`: http://php.net/session.customhandler
.. _`php.net/session.configuration`: http://php.net/session.configuration
.. _`php.net/memcached.setoption`: http://php.net/memcached.setoption