Skip to content

Commit 1c7e00c

Browse files
pueppiblueGuikingone
authored andcommitted
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
1 parent df2bdb3 commit 1c7e00c

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

doctrine/pdo_session_storage.rst

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ To use it, first register a new handler service:
2323
2424
Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler:
2525
arguments:
26-
- 'mysql:dbname=mydatabase'
27-
- { db_username: myuser, db_password: mypassword }
26+
- 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%'
27+
- { db_username: '%env(MYDATABASE_USERNAME)%', db_password: '%env(MYDATABASE_PASSWORD)%' }
2828
2929
# If you're using Doctrine & want to re-use that connection, then:
3030
# comment-out the above 2 lines and uncomment the line below
@@ -43,10 +43,10 @@ To use it, first register a new handler service:
4343
4444
<services>
4545
<service id="Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler" public="false">
46-
<argument>mysql:dbname=mydatabase</argument>
46+
<argument>mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%</argument>
4747
<argument type="collection">
48-
<argument key="db_username">myuser</argument>
49-
<argument key="db_password">mypassword</argument>
48+
<argument key="db_username">%env(MYDATABASE_USERNAME)%</argument>
49+
<argument key="db_password">%env(MYDATABASE_PASSWORD)%</argument>
5050
</argument>
5151
</service>
5252
</services>
@@ -59,11 +59,19 @@ To use it, first register a new handler service:
5959
6060
$storageDefinition = $container->autowire(PdoSessionHandler::class)
6161
->setArguments(array(
62-
'mysql:dbname=mydatabase',
63-
array('db_username' => 'myuser', 'db_password' => 'mypassword')
62+
'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%',
63+
array('db_username' => '%env(MYDATABASE_USERNAME)%', 'db_password' => '%env(MYDATABASE_PASSWORD)')
6464
))
6565
;
6666
67+
.. note::
68+
69+
Ideally you want to reuse your database information from your environment variables.
70+
These variables can be referenced in the service configuration using ``%env(PARAMETER_NAME)%``.
71+
Do not forget to wrap these with single or double quotes in yaml.
72+
73+
See :doc:`/configuration/external_parameters`.
74+
6775
Next, tell Symfony to use your service as the session handler:
6876

6977
.. configuration-block::
@@ -115,8 +123,8 @@ a second array argument to ``PdoSessionHandler``:
115123
116124
Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler:
117125
arguments:
118-
- 'mysql:dbname=mydatabase'
119-
- { db_table: sessions, db_username: myuser, db_password: mypassword }
126+
- 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%'
127+
- { db_table: '%env(SESSIONS_TABLE)%, db_username: '%env(MYDATABASE_USERNAME)%', db_password: '%env(MYDATABASE_PASSWORD)%' }
120128
121129
.. code-block:: xml
122130
@@ -129,11 +137,11 @@ a second array argument to ``PdoSessionHandler``:
129137
130138
<services>
131139
<service id="Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler" public="false">
132-
<argument>mysql:dbname=mydatabase</argument>
140+
<argument>mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%</argument>
133141
<argument type="collection">
134-
<argument key="db_table">sessions</argument>
135-
<argument key="db_username">myuser</argument>
136-
<argument key="db_password">mypassword</argument>
142+
<argument key="db_username">%env(MYDATABASE_USERNAME)%</argument>
143+
<argument key="db_password">%env(MYDATABASE_PASSWORD)%</argument>
144+
<argument key="db_table">%env(SESSIONS_TABLE)%</argument>
137145
</argument>
138146
</service>
139147
</services>
@@ -148,8 +156,11 @@ a second array argument to ``PdoSessionHandler``:
148156
149157
$container->autowire(PdoSessionHandler::class)
150158
->setArguments(array(
151-
'mysql:dbname=mydatabase',
152-
array('db_table' => 'sessions', 'db_username' => 'myuser', 'db_password' => 'mypassword')
159+
'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%',
160+
array(
161+
'db_table' => '%env(SESSIONS_TABLE)%',
162+
'db_username' => '%env(MYDATABASE_USERNAME)%',
163+
'db_password' => '%env(MYDATABASE_PASSWORD)')
153164
))
154165
;
155166

0 commit comments

Comments
 (0)