diff --git a/reference/configuration/framework.rst b/reference/configuration/framework.rst index da817c5df39..c220ba2a78b 100644 --- a/reference/configuration/framework.rst +++ b/reference/configuration/framework.rst @@ -1364,10 +1364,45 @@ handler_id **type**: ``string`` **default**: ``'session.handler.native_file'`` -The service id used for session storage. The default value ``'session.handler.native_file'`` +The service id or DSN used for session storage. The default value ``'session.handler.native_file'`` will let Symfony manage the sessions itself using files to store the session metadata. -Set it to ``null`` to use the native PHP session mechanism. -You can also :doc:`store sessions in a database `. +Set it to ``null`` to use the native PHP session mechanism. You can also provide a DSN to specify +the used storage-directory or :doc:`store sessions in a database `: + +.. configuration-block:: + + .. code-block:: yaml + + # config/packages/framework.yaml + framework: + session: + # ... + handler_id: 'file://%kernel.project_dir%/var/sessions' + + .. code-block:: xml + + + + + + + + + + .. code-block:: php + + // config/packages/framework.php + $container->loadFromExtension('framework', [ + 'session' => [ + // ... + 'handler_id' => 'file://%kernel.project_dir%/var/sessions', + ], + ]); .. _name: diff --git a/session/database.rst b/session/database.rst index 56cd9e27384..fa6a1e41caf 100644 --- a/session/database.rst +++ b/session/database.rst @@ -11,6 +11,64 @@ across different servers. Symfony can store sessions in all kinds of databases (relational, NoSQL and key-value) but recommends key-value databases like Redis to get best performance. +Define Session Storage by DSN +----------------------------- + +Besides specifying a service as the session-handler you can also provide a +"DSN" directly and let Symfony create the necessary services/clients: + +.. configuration-block:: + + .. code-block:: yaml + + # config/packages/framework.yaml + framework: + session: + # ... + handler_id: 'redis://password@redis-server:6379' + + .. code-block:: xml + + + + + + + + + + .. code-block:: php + + // config/packages/framework.php + $container->loadFromExtension('framework', [ + 'session' => [ + // ... + 'handler_id' => 'redis://password@redis-server:6379', + ], + ]); + +Supported DSN protocols are: + +- file (i.e.: ``file://%kernel.project_dir%/var/sessions``) +- redis (i.e.: ``redis://redis-server:6379``) +- rediss +- memcached +- pdo_oci +- mssql +- mysql +- mysql2 +- pgsql +- postgres +- postgresql +- sqlsrv +- sqlite +- sqlite3 + Store Sessions in a key-value Database (Redis) ---------------------------------------------- pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy