Skip to content

Commit cd24113

Browse files
pueppibluejaviereguiluz
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 c83113e commit cd24113

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
@@ -24,8 +24,8 @@ To use it, first register a new handler service:
2424
Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler:
2525
public: false
2626
arguments:
27-
- 'mysql:dbname=mydatabase'
28-
- { db_username: myuser, db_password: mypassword }
27+
- 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%'
28+
- { db_username: '%env(MYDATABASE_USERNAME)%', db_password: '%env(MYDATABASE_PASSWORD)%' }
2929
3030
.. code-block:: xml
3131
@@ -40,10 +40,10 @@ To use it, first register a new handler service:
4040
4141
<services>
4242
<service id="Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler" public="false">
43-
<argument>mysql:dbname=mydatabase</argument>
43+
<argument>mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%</argument>
4444
<argument type="collection">
45-
<argument key="db_username">myuser</argument>
46-
<argument key="db_password">mypassword</argument>
45+
<argument key="db_username">%env(MYDATABASE_USERNAME)%</argument>
46+
<argument key="db_password">%env(MYDATABASE_PASSWORD)%</argument>
4747
</argument>
4848
</service>
4949
</services>
@@ -56,11 +56,19 @@ To use it, first register a new handler service:
5656
5757
$storageDefinition = $container->register(PdoSessionHandler::class)
5858
->setArguments(array(
59-
'mysql:dbname=mydatabase',
60-
array('db_username' => 'myuser', 'db_password' => 'mypassword')
59+
'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%',
60+
array('db_username' => '%env(MYDATABASE_USERNAME)%', 'db_password' => '%env(MYDATABASE_PASSWORD)')
6161
))
6262
;
6363
64+
.. note::
65+
66+
Ideally you want to reuse your database information from your environment variables.
67+
These variables can be referenced in the service configuration using ``%env(PARAMETER_NAME)%``.
68+
Do not forget to wrap these with single or double quotes in yaml.
69+
70+
See :doc:`/configuration/external_parameters`.
71+
6472
Next, tell Symfony to use your service as the session handler:
6573

6674
.. configuration-block::
@@ -113,8 +121,8 @@ a second array argument to ``PdoSessionHandler``:
113121
Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler:
114122
public: false
115123
arguments:
116-
- 'mysql:dbname=mydatabase'
117-
- { db_table: sessions, db_username: myuser, db_password: mypassword }
124+
- 'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%'
125+
- { db_table: '%env(SESSIONS_TABLE)%, db_username: '%env(MYDATABASE_USERNAME)%', db_password: '%env(MYDATABASE_PASSWORD)%' }
118126
119127
.. code-block:: xml
120128
@@ -127,11 +135,11 @@ a second array argument to ``PdoSessionHandler``:
127135
128136
<services>
129137
<service id="Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler" public="false">
130-
<argument>mysql:dbname=mydatabase</argument>
138+
<argument>mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%</argument>
131139
<argument type="collection">
132-
<argument key="db_table">sessions</argument>
133-
<argument key="db_username">myuser</argument>
134-
<argument key="db_password">mypassword</argument>
140+
<argument key="db_username">%env(MYDATABASE_USERNAME)%</argument>
141+
<argument key="db_password">%env(MYDATABASE_PASSWORD)%</argument>
142+
<argument key="db_table">%env(SESSIONS_TABLE)%</argument>
135143
</argument>
136144
</service>
137145
</services>
@@ -146,8 +154,11 @@ a second array argument to ``PdoSessionHandler``:
146154
147155
$container->register(PdoSessionHandler::class)
148156
->setArguments(array(
149-
'mysql:dbname=mydatabase',
150-
array('db_table' => 'sessions', 'db_username' => 'myuser', 'db_password' => 'mypassword')
157+
'mysql:dbname=%env(MYDATABASE_NAME)%, host=%env(MYDATABASE_HOST)%',
158+
array(
159+
'db_table' => '%env(SESSIONS_TABLE)%',
160+
'db_username' => '%env(MYDATABASE_USERNAME)%',
161+
'db_password' => '%env(MYDATABASE_PASSWORD)')
151162
))
152163
;
153164

0 commit comments

Comments
 (0)