搜索
系统检测到您的用户名不符合规范:

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

浏览:3943 发布日期:2015年07月05日 分类:系统代码
使用Tp框架已经有5个版本了,关于Mysql和mongodb的同时使用,tp框架一直是蜻蜓点水,说的很不到位,相比Yii框架来说,mongodb的拓展很弱。我就结合TP官方提供的mongodb类进行了一个拓展和修改,可以在tp中同时使用。
1 在Tp公共的配置文件Conf目录下建立一个别名文件alias.php(和config.php同一个目录下)
我的别名文件配置如下:
<?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然后配置
<?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 下载:74 次 )

收藏
逝仙313
积分:815 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /