@@ -46,6 +46,90 @@ need to change/add some parameters in the main configuration file:
46
46
class : Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler
47
47
arguments : [@mongo_client, %mongo.session.options%]
48
48
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
+
49
133
Setting Up the MongoDB Collection
50
134
---------------------------------
51
135
Because MongoDB uses dynamic collection schemas, you do not need to do anything to initialize your
0 commit comments