2011-04-01
CakePHP — MongoDB session storage
Для того, чтобы сохранять сессии в MongoDB нам понадобятся:
1. сам MongoDB
3. источник данных для CakePHP MongoDB Datasource
скачиваем плагин и кладем его в my/app/plugins/mongodb или забираем гитом
cd my/app/plugins
git clone git://github.com/ichikaway/cakephp-mongodb.git mongodb
дальше в database.php описываем новое подключение
public $mongo = array(
'driver' => 'mongodb.mongodbSource',
'database' => 'sessions',
'host' => 'localhost',
'port' => 27017,
);
создаем модель Session, в ней описываем схему данных (хотя монго и schemaless, но кэйк сохраняет только те поля, которые описаны в схеме)
class Session extends AppModel {
public $mongoSchema = array(
'id' => array('type' => 'string'),
'data' => array('type' => 'string'),
'expires' => array('type' => 'integer'),
);
}
в core.php задаем новые параметры хранения сессий
Configure::write('Session.save', 'database');
Configure::write('Session.model', 'Session');
Configure::write('Session.database', 'mongo');
все получилось: