发表于 2015-7-9 08:04:56

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
  配置应用



1 vi /protected/config/main.php
2
3
4
5'import' => array(
6       ...
7       'ext.YiiMongoDbSuite.*',    // 插件根目录文件
8   ),
9
10   'components' => array(
11       ...
12       'mongodb' => array(
13         'class'            => 'EMongoDB', //主文件
14         'connectionString' => 'mongodb://127.0.0.1:27017', //服务器地址
15         'dbName'         => 'myDatabaseName',//数据库名称
16         'fsyncFlag'      => true, //mongodb的确保所有写入到数据库的安全存储到磁盘
17         'safeFlag'         => true, //mongodb的等待检索的所有写操作的状态,并检查
18         'useCursor'      => false, //设置为true,将启用游标
19       ),
20   ),
  这样就配置好了,当然,请确保你的mongodb安装在本地,并且端口号是27107上面的配置才能连接得上。
  下面测试一下Model:
  将以下代码放至/protected/models/User.php里



1 class User extends EMongoDocument
2   {
3       public $login;
4       public $name;
5       public $pass;
6
7       // This has to be defined in every model, this is same as with standard Yii ActiveRecord
8       public static function model($className=__CLASS__)
9       {
10         return parent::model($className);
11       }
12
13       // This method is required!
14       public function getCollectionName()
15       {
16         return 'users';
17       }
18
19       public function rules()
20       {
21         return array(
22         array('login, pass', 'required'),
23         array('login, pass', 'length', 'max' => 20),
24         array('name', 'length', 'max' => 255),
25         );
26       }
27
28       public function attributeLabels()
29       {
30         return array(
31         'login'=> 'User Login',
32         'name'   => 'Full name',
33         'pass'   => 'Password',
34         );
35       }
36   }
  在控制器里测试一下
  $users = User::model()->findAll();
var_dump($users);
  
  如果没有报错,那说明可以正常使用了。
  
页: [1]
查看完整版本: Yii框架中使用mongodb扩展