Yii框架中使用mongodb扩展

时间:2023-03-09 13:32:12
Yii框架中使用mongodb扩展

前提条件:安装了mongodb数据库

安装了mongo的php驱动

下载Yii的mongo扩展:
这是YiiMongoDbSuite的1.3.6版本
支持PHP Mongo驱动的版本为1.0.5及以下

下载链接:http://pan.baidu.com/s/1jGuWP1O

其它版本下载链接:https://github.com/canni/YiiMongoDbSuite

得到文件:YiiMongoDbSuite.tar.gz

解包,并将该文件放至应用的/protected/extensions文件夹下面

确保文件夹名称为:YiiMongoDbSuite

配置应用

 vi /protected/config/main.php

  'import' => array(
...
'ext.YiiMongoDbSuite.*', // 插件根目录文件
), 'components' => array(
...
'mongodb' => array(
'class' => 'EMongoDB', //主文件
'connectionString' => 'mongodb://127.0.0.1:27017', //服务器地址
'dbName' => 'myDatabaseName',//数据库名称
'fsyncFlag' => true, //mongodb的确保所有写入到数据库的安全存储到磁盘
'safeFlag' => true, //mongodb的等待检索的所有写操作的状态,并检查
'useCursor' => false, //设置为true,将启用游标
),
),

这样就配置好了,当然,请确保你的mongodb安装在本地,并且端口号是27107上面的配置才能连接得上。

下面测试一下Model:

将以下代码放至/protected/models/User.php里

 class User extends EMongoDocument
{
public $login;
public $name;
public $pass; // This has to be defined in every model, this is same as with standard Yii ActiveRecord
public static function model($className=__CLASS__)
{
return parent::model($className);
} // This method is required!
public function getCollectionName()
{
return 'users';
} public function rules()
{
return array(
array('login, pass', 'required'),
array('login, pass', 'length', 'max' => 20),
array('name', 'length', 'max' => 255),
);
} public function attributeLabels()
{
return array(
'login' => 'User Login',
'name' => 'Full name',
'pass' => 'Password',
);
}
}

在控制器里测试一下

$users = User::model()->findAll();
var_dump($users);

如果没有报错,那说明可以正常使用了。