Heim  >  Artikel  >  php教程  >  TP框架中mysql和mongo同时使用解决方案

TP框架中mysql和mongo同时使用解决方案

WBOY
WBOYOriginal
2016-06-07 11:38:121623Durchsuche

使用Tp框架已经有5个版本了,关于Mysql和mongodb的同时使用,tp框架一直是蜻蜓点水,说的很不到位,相比Yii框架来说,mongodb的拓展很弱。我就结合TP官方提供的mongodb类进行了一个拓展和修改,可以在tp中同时使用。
1 在Tp公共的配置文件Conf目录下建立一个别名文件alias.php(和config.php同一个目录下)
我的别名文件配置如下:
//别名加载文件import("Util")方式可以加载文件和类库
return array(
'Util' =>COMMON_PATH.'librarys/Util.php',//加载common/librarys下的文件
'Hgmongodb' =>COMMON_PATH.'extensions/mongodb/Hgmongodb.php',//加载mongo
);
2 在config.php配置文件下的目录中建立一个params.php然后配置
//网站其他拓展参数
return array(
'Mongodb'=>array(
'hostname'=>'127.0.0.1',
'hostport'=>'27017',
'database'=>'bjdaheige',
'username'=>'',
'password'=>'',
'coll_prefix'=>'dv_',
'params'=>array('connect'=>true),
'db_deploy_type' => 1,//是否注销连接
),
);
3 在config.php配置文件中,加载导入的自定义配置文件
//拓展其他参数,比如Mongodb
'LOAD_EXT_CONFIG'=>'params',
这里的Mongodb就可以用C('Mongodb')方式读取
4 在具体的控制器的动作方法中,我们可以这么使用:
//测试mongodb和import别名导入文件
import("Hgmongodb");
$mongo = new Hgmongodb(C('Mongodb'));
$mongo->connect();//连接mongodb,这是一个触发式的连接
$user = $mongo->findOne(array('table'=>'we_user','limit'=>1,'where'=>array('we_account_id'=>100102034)),array('subscribe_time','nickname'));
$user2 = $mongo->findOne(array('table'=>'we_user','limit'=>1,'where'=>array('remark_name'=>array('like','布布'))),array('subscribe_time','nickname'));
var_dump($user);
var_dump($user2);die;
运行结果:
array (size=3)
'_id' =>
object(MongoId)[11]
public '$id' => string '545c5e1fa724e9043f000008' (length=24)
'nickname' => string '任勇铨' (length=9)
'subscribe_time' => int 1396253215

array (size=3)
'_id' =>
object(MongoId)[13]
public '$id' => string '545c5e21a724e9043f00000a' (length=24)
'nickname' => string '布布' (length=6)
'subscribe_time' => int 1395583303

附件 Hgmongodb.zip ( 6.11 KB 下载:32 次 )

AD:真正免费,域名+虚机+企业邮箱=0元

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:接口文档管理工具Nächster Artikel:仿途牛源码分享