一:安装yii2 关于安装yii2我们就不??铝耍?故抢??omposer安装下载,我们可以安装basic
模版
composer global require "fxp/composer-asset-plugin:~1.0.3"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
或者是advanced
composer global require "fxp/composer-asset-plugin:~1.0.3"
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application
安装过程需要输入github密钥,按照提示操作即可
二:yii2 soft 自带mongodb,安装追加composer
composer require --prefer-dist yiisoft/yii2-mongodb
/vendor/yiisoft/yii2-mongodb引入了mongodb
三:使用方法crud
config/web.php
'mongodb' => [
'class' => 'yiimongodbConnection',
'dsn' => 'mongodb://tank:[email protected]:27017/admin',
],
use yiimongodbQuery;
public function actionIndex()
{
$query = new Query;
// compose the query
$query->select(['_id', 'sex'])
->from('admin')
->limit(10);
// execute the query
$rows = $query->all();
print_r($rows);
// return $this->render('index');
}
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);
如果没有报错,那说明可以正常使用了。