From f0c8e226021098b2686e0d77be6f0937bd717d3d Mon Sep 17 00:00:00 2001 From: pueppiblue Date: Fri, 23 Mar 2018 19:12:59 +0100 Subject: [PATCH 1/6] add documentation for external parameters and pdo host parameter - add host parameter to first argument useful when database is on another host e.g. docker grid - wrap parameter values in %env()% - add note how to use external parameters --- doctrine/pdo_session_storage.rst | 41 ++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/doctrine/pdo_session_storage.rst b/doctrine/pdo_session_storage.rst index cb2c96ddec3..090130c56ac 100644 --- a/doctrine/pdo_session_storage.rst +++ b/doctrine/pdo_session_storage.rst @@ -23,8 +23,8 @@ To use it, first register a new handler service: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler: arguments: - - 'mysql:dbname=mydatabase' - - { db_username: myuser, db_password: mypassword } + - 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%' + - { db_username: '%env(MYDATABASE_USERNAME)%', db_password: '%env(MYDATABASE_PASSWORD)%' } # If you're using Doctrine & want to re-use that connection, then: # comment-out the above 2 lines and uncomment the line below @@ -43,10 +43,10 @@ To use it, first register a new handler service: - mysql:dbname=mydatabase + mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)% - myuser - mypassword + %env(MYDATABASE_USERNAME)% + %env(MYDATABASE_PASSWORD)% @@ -59,11 +59,19 @@ To use it, first register a new handler service: $storageDefinition = $container->autowire(PdoSessionHandler::class) ->setArguments(array( - 'mysql:dbname=mydatabase', - array('db_username' => 'myuser', 'db_password' => 'mypassword') + 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', + array('db_username' => '%env(MYDATABASE_USERNAME)%', 'db_password' => '%env(MYDATABASE_PASSWORD)') )) ; +.. note:: + + Ideally you want to reuse your database information from your environment variables. + These variables can be referenced in the service configuration using ``%env(PARAMETER_NAME)%``. + Do not forget to wrap these with single or double quotes in yaml. + + See :doc:`/configuration/external_parameters`. + Next, tell Symfony to use your service as the session handler: .. configuration-block:: @@ -115,8 +123,8 @@ a second array argument to ``PdoSessionHandler``: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler: arguments: - - 'mysql:dbname=mydatabase' - - { db_table: sessions, db_username: myuser, db_password: mypassword } + - 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%' + - { db_table: '%env(SESSIONS_TABLE)%, db_username: '%env(MYDATABASE_USERNAME)%', db_password: '%env(MYDATABASE_PASSWORD)%' } .. code-block:: xml @@ -129,11 +137,11 @@ a second array argument to ``PdoSessionHandler``: - mysql:dbname=mydatabase + mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)% - sessions - myuser - mypassword + %env(MYDATABASE_USERNAME)% + %env(MYDATABASE_PASSWORD)% + %env(SESSIONS_TABLE)% @@ -148,8 +156,11 @@ a second array argument to ``PdoSessionHandler``: $container->autowire(PdoSessionHandler::class) ->setArguments(array( - 'mysql:dbname=mydatabase', - array('db_table' => 'sessions', 'db_username' => 'myuser', 'db_password' => 'mypassword') + 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', + array( + 'db_table' => '%env(SESSIONS_TABLE)%', + 'db_username' => '%env(MYDATABASE_USERNAME)%', + 'db_password' => '%env(MYDATABASE_PASSWORD)') )) ; From eac51a15b51f0a310cdb14a37668d9736df96b37 Mon Sep 17 00:00:00 2001 From: pueppiblue Date: Fri, 23 Mar 2018 20:01:53 +0100 Subject: [PATCH 2/6] codestyle --- doctrine/pdo_session_storage.rst | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/doctrine/pdo_session_storage.rst b/doctrine/pdo_session_storage.rst index 090130c56ac..faa8ac82021 100644 --- a/doctrine/pdo_session_storage.rst +++ b/doctrine/pdo_session_storage.rst @@ -155,14 +155,16 @@ a second array argument to ``PdoSessionHandler``: // ... $container->autowire(PdoSessionHandler::class) - ->setArguments(array( - 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', + ->setArguments( array( - 'db_table' => '%env(SESSIONS_TABLE)%', - 'db_username' => '%env(MYDATABASE_USERNAME)%', - 'db_password' => '%env(MYDATABASE_PASSWORD)') - )) - ; + 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', + array( + 'db_table' => '%env(SESSIONS_TABLE)%', + 'db_username' => '%env(MYDATABASE_USERNAME)%', + 'db_password' => '%env(MYDATABASE_PASSWORD)' + ) + ) + ); These are parameters that you can configure: From 9892d687e2a469f0eb1669e37ebb8d6ed4348df9 Mon Sep 17 00:00:00 2001 From: pueppiblue Date: Tue, 24 Apr 2018 13:20:10 +0200 Subject: [PATCH 3/6] add trailing comma on last array element #9493 --- doctrine/pdo_session_storage.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doctrine/pdo_session_storage.rst b/doctrine/pdo_session_storage.rst index faa8ac82021..685a7e2b99c 100644 --- a/doctrine/pdo_session_storage.rst +++ b/doctrine/pdo_session_storage.rst @@ -60,7 +60,7 @@ To use it, first register a new handler service: $storageDefinition = $container->autowire(PdoSessionHandler::class) ->setArguments(array( 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', - array('db_username' => '%env(MYDATABASE_USERNAME)%', 'db_password' => '%env(MYDATABASE_PASSWORD)') + array('db_username' => '%env(MYDATABASE_USERNAME)%', 'db_password' => '%env(MYDATABASE_PASSWORD)'), )) ; @@ -161,7 +161,7 @@ a second array argument to ``PdoSessionHandler``: array( 'db_table' => '%env(SESSIONS_TABLE)%', 'db_username' => '%env(MYDATABASE_USERNAME)%', - 'db_password' => '%env(MYDATABASE_PASSWORD)' + 'db_password' => '%env(MYDATABASE_PASSWORD)', ) ) ); From b0c72eaf6c5cec590b95477798fe7d21e9f12f97 Mon Sep 17 00:00:00 2001 From: pueppiblue Date: Tue, 24 Apr 2018 13:50:53 +0200 Subject: [PATCH 4/6] add more trailing comma on last array element #9493 --- doctrine/pdo_session_storage.rst | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/doctrine/pdo_session_storage.rst b/doctrine/pdo_session_storage.rst index 685a7e2b99c..3c8fc346030 100644 --- a/doctrine/pdo_session_storage.rst +++ b/doctrine/pdo_session_storage.rst @@ -58,11 +58,15 @@ To use it, first register a new handler service: use Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler; $storageDefinition = $container->autowire(PdoSessionHandler::class) - ->setArguments(array( - 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', - array('db_username' => '%env(MYDATABASE_USERNAME)%', 'db_password' => '%env(MYDATABASE_PASSWORD)'), - )) - ; + ->setArguments( + array( + 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', + array( + 'db_username' => '%env(MYDATABASE_USERNAME)%', + 'db_password' => '%env(MYDATABASE_PASSWORD)', + ), + ) + ); .. note:: @@ -162,7 +166,7 @@ a second array argument to ``PdoSessionHandler``: 'db_table' => '%env(SESSIONS_TABLE)%', 'db_username' => '%env(MYDATABASE_USERNAME)%', 'db_password' => '%env(MYDATABASE_PASSWORD)', - ) + ), ) ); From 90daa1c8808aaad961ad26157b9e085ee030b33b Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Thu, 12 Jul 2018 11:32:52 +0200 Subject: [PATCH 5/6] Don't use env vars in all config examples --- doctrine/pdo_session_storage.rst | 54 +++++++++++++------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/doctrine/pdo_session_storage.rst b/doctrine/pdo_session_storage.rst index 3c8fc346030..98a2263fd52 100644 --- a/doctrine/pdo_session_storage.rst +++ b/doctrine/pdo_session_storage.rst @@ -23,8 +23,8 @@ To use it, first register a new handler service: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler: arguments: - - 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%' - - { db_username: '%env(MYDATABASE_USERNAME)%', db_password: '%env(MYDATABASE_PASSWORD)%' } + - 'mysql:dbname=mydatabase, host=myhost' + - { db_username: myuser, db_password: mypassword } # If you're using Doctrine & want to re-use that connection, then: # comment-out the above 2 lines and uncomment the line below @@ -43,10 +43,10 @@ To use it, first register a new handler service: - mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)% + mysql:dbname=mydatabase, host=myhost - %env(MYDATABASE_USERNAME)% - %env(MYDATABASE_PASSWORD)% + myuser + mypassword @@ -60,21 +60,16 @@ To use it, first register a new handler service: $storageDefinition = $container->autowire(PdoSessionHandler::class) ->setArguments( array( - 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', - array( - 'db_username' => '%env(MYDATABASE_USERNAME)%', - 'db_password' => '%env(MYDATABASE_PASSWORD)', - ), + 'mysql:dbname=mydatabase, host=myhost', + array('db_username' => 'myuser', 'db_password' => 'mypassword'), ) ); -.. note:: - - Ideally you want to reuse your database information from your environment variables. - These variables can be referenced in the service configuration using ``%env(PARAMETER_NAME)%``. - Do not forget to wrap these with single or double quotes in yaml. +.. tip:: - See :doc:`/configuration/external_parameters`. + Configure the database credentials as + :doc:`parameters defined with environment variables ` + to make your application more secure. Next, tell Symfony to use your service as the session handler: @@ -127,8 +122,8 @@ a second array argument to ``PdoSessionHandler``: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler: arguments: - - 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%' - - { db_table: '%env(SESSIONS_TABLE)%, db_username: '%env(MYDATABASE_USERNAME)%', db_password: '%env(MYDATABASE_PASSWORD)%' } + - 'mysql:dbname=mydatabase, host=myhost' + - { db_table: 'sessions', db_username: 'myuser', db_password: 'mypassword' } .. code-block:: xml @@ -141,11 +136,11 @@ a second array argument to ``PdoSessionHandler``: - mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)% + mysql:dbname=mydatabase, host=myhost - %env(MYDATABASE_USERNAME)% - %env(MYDATABASE_PASSWORD)% - %env(SESSIONS_TABLE)% + sessions + myuser + mypassword @@ -159,16 +154,11 @@ a second array argument to ``PdoSessionHandler``: // ... $container->autowire(PdoSessionHandler::class) - ->setArguments( - array( - 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%', - array( - 'db_table' => '%env(SESSIONS_TABLE)%', - 'db_username' => '%env(MYDATABASE_USERNAME)%', - 'db_password' => '%env(MYDATABASE_PASSWORD)', - ), - ) - ); + ->setArguments(array( + 'mysql:dbname=mydatabase, host=myhost', + array('db_table' => 'sessions', 'db_username' => 'myuser', 'db_password' => 'mypassword') + )) + ; These are parameters that you can configure: From b957ca24d5bcc73aff2433f6da747044b6423e98 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Thu, 12 Jul 2018 11:33:52 +0200 Subject: [PATCH 6/6] Remove some unneeded changes --- doctrine/pdo_session_storage.rst | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doctrine/pdo_session_storage.rst b/doctrine/pdo_session_storage.rst index 98a2263fd52..dc44c5c3691 100644 --- a/doctrine/pdo_session_storage.rst +++ b/doctrine/pdo_session_storage.rst @@ -58,12 +58,11 @@ To use it, first register a new handler service: use Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler; $storageDefinition = $container->autowire(PdoSessionHandler::class) - ->setArguments( - array( - 'mysql:dbname=mydatabase, host=myhost', - array('db_username' => 'myuser', 'db_password' => 'mypassword'), - ) - ); + ->setArguments(array( + 'mysql:dbname=mydatabase, host=myhost', + array('db_username' => 'myuser', 'db_password' => 'mypassword') + )) + ; .. tip::