Skip to content

Commit 52d89dc

Browse files
add xml and php configuration blocks
1 parent 8e20ba4 commit 52d89dc

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

cookbook/configuration/mongodb_session_storage.rst

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,90 @@ need to change/add some parameters in the main configuration file:
4646
class: Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler
4747
arguments: [@mongo_client, %mongo.session.options%]
4848
49+
.. code-block:: xml
50+
51+
<?xml version="1.0" encoding="UTF-8"?>
52+
<container xmlns="http://symfony.com/schema/dic/services"
53+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance"
54+
xmlns:framework="http://symfony.com/schema/dic/symfony"
55+
xsi:schemaLocation="http://symfony.com/schema/dic/services
56+
http://symfony.com/schema/dic/services/services-1.0.xsd
57+
http://symfony.com/schema/dic/symfony
58+
http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
59+
60+
<framework:config>
61+
<!-- ... -->
62+
63+
<!-- cookie-lifetime and gc-maxlifetime are optional and set to
64+
30 days in this example -->
65+
<framework:session handler-id="session.handler.mongo"
66+
cookie-lifetime="2592000"
67+
gc-maxlifetime="2592000"
68+
/>
69+
</framework:config>
70+
71+
<parameters>
72+
<parameter key="mongo.session.options" type="collection">
73+
<!-- your MongoDB database name -->
74+
<parameter key="database">session_db</parameter>
75+
<!-- your MongoDB collection name -->
76+
<parameter key="collection">session</parameter>
77+
</parameter>
78+
<!-- your MongoDB server's IP -->
79+
<parameter key="mongodb_host">1.2.3.4</parameter>
80+
<parameter key="mongodb_username">my_username</parameter>
81+
<parameter key="mongodb_password">my_password</parameter>
82+
</parameters>
83+
84+
<services>
85+
<service id="mongo_client" class="MongoClient">
86+
<!-- if using a username and password -->
87+
<argument>mongodb://%mongodb_username%:%mongodb_password%@%mongodb_host%:27017</argument>
88+
89+
<!-- if not using a username and password -->
90+
<argument>mongodb://%mongodb_host%:27017</argument>
91+
</service>
92+
93+
<service id="session.handler.mongo" class="Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler">
94+
<argument type="service">mongo_client</argument>
95+
<argument>%mongo.session.options%</argument>
96+
</service>
97+
</container>
98+
99+
.. code-block:: php
100+
101+
use Symfony\Component\DependencyInjection\Reference;
102+
use Symfony\Component\DependencyInjection\Definition;
103+
104+
$container->loadFromExtension('framework', array(
105+
'session' => array(
106+
// ...
107+
'handler_id' => 'session.handler.mongo',
108+
'cookie_lifetime' => 2592000, // optional, it is set to 30 days here
109+
'gc_maxlifetime' => 2592000, // optional, it is set to 30 days here
110+
),
111+
));
112+
113+
$container->setParameter('mongo.session.options', array(
114+
'database' => 'session_db', // your MongoDB database name
115+
'collection' => 'session', // your MongoDB collection name
116+
));
117+
$container->setParameter('mongodb_host', '1.2.3.4'); // your MongoDB server's IP
118+
$container->setParameter('mongodb_username', 'my_username');
119+
$container->setParameter('mongodb_password', 'my_password');
120+
121+
$container->setDefinition('mongo_client', new Definition('MongoClient', array(
122+
// if using a username and password
123+
array('mongodb://%mongodb_username%:%mongodb_password%@%mongodb_host%:27017'),
124+
// if not using a username and password
125+
array('mongodb://%mongodb_host%:27017'),
126+
)));
127+
128+
$container->setDefinition('session.handler.mongo', new Definition(
129+
'Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler',
130+
array(new Reference('mongo_client'), '%mongo.session.options%')
131+
));
132+
49133
Setting Up the MongoDB Collection
50134
---------------------------------
51135
Because MongoDB uses dynamic collection schemas, you do not need to do anything to initialize your

0 commit comments

Comments
 (0)