前提條件:安裝了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);
如果沒有報錯,那說明可以正常使用了。