thinkphp 如何设置全局变量
比如,一个网站有一些全局的变量,比如网站名称、网页标题、关键字、备案号、联系信息等,在每个页面都要用到的,而thinkphp似乎是每次请求控制器才执行一些操作。也许我表达...
比如,一个网站有一些全局的变量,比如网站名称、网页标题、关键字、备案号、联系信息等,在每个页面都要用到的,而thinkphp似乎是每次请求控制器才执行一些操作。
也许我表达不清楚,我的意思是:如何让网站一打开,就取得数据库的网站信息,而不用在每个方法都去朝族一次数据库呢?
本人是thinkphp菜鸟,烦请大家耐心指导。。。。。。
无满意答案啊。。。。。
似乎大家都没明白我的意图,不知道是我表述有误还是大家理解有限。。。。郁闷中 展开
也许我表达不清楚,我的意思是:如何让网站一打开,就取得数据库的网站信息,而不用在每个方法都去朝族一次数据库呢?
本人是thinkphp菜鸟,烦请大家耐心指导。。。。。。
无满意答案啊。。。。。
似乎大家都没明白我的意图,不知道是我表述有误还是大家理解有限。。。。郁闷中 展开
6个回答
展开全部
//获取地铁列表(利用缓存)
function getSubwayList() {
$subwayListArr = F("SubwayList");
if (empty($subwayListArr)) {
$subwayListArr = M("Subway")->where("status=1")->order("sort_order asc")->select();
F("SubwayList", $subwayListArr);
}
return $subwayListArr;
}
楼主应该是要这种效果,第一次使用数据库,以后访问缓存,使用F()简单缓存函数就可以了。使用的时候调用getSubwayList()。不懂再问我
(我正好也在做网站缓存优化,这个缓存还有一个处理。当你数据更新的时候,需要更新缓存。)
if(插入、删除、编辑成功){
$subwayListArr = M("Subway")->where("status=1")->order("sort_order asc")->select();
F("SubwayList", $subwayListArr);
}
function getSubwayList() {
$subwayListArr = F("SubwayList");
if (empty($subwayListArr)) {
$subwayListArr = M("Subway")->where("status=1")->order("sort_order asc")->select();
F("SubwayList", $subwayListArr);
}
return $subwayListArr;
}
楼主应该是要这种效果,第一次使用数据库,以后访问缓存,使用F()简单缓存函数就可以了。使用的时候调用getSubwayList()。不懂再问我
(我正好也在做网站缓存优化,这个缓存还有一个处理。当你数据更新的时候,需要更新缓存。)
if(插入、删除、编辑成功){
$subwayListArr = M("Subway")->where("status=1")->order("sort_order asc")->select();
F("SubwayList", $subwayListArr);
}
追问
你这个好像只是把数据存放位置进行了一个转移而已
那么,是不是在url每请求一次控制器或者模块就来读取一次数据啊?确切的说是url每请求一次控制器或者模块就来写代码读取一次数据啊?
比如每次都
$this->assign('变量','变量值');
我的疑惑是在这里,而不是数据的存储读取方式或方向。。。。。
谢谢!
追答
你的意思是打开网站的第一次就把固定不变的数据请求到客户端。这个你用cookie做,第一次请求到cookie,然后从之后的读取从cookie来读取就可以了。
不过这个优化没有什么差别吧,固定不变的数据量其实并不大。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看你的需求,你可以利用thinkphp提供的文件缓存功能,把数据库中这些固定的信息读出来以文件缓存的形式保存,以后在需要时直接读缓存即可,而tp提供了非常好的缓存接口
F('data',$Data);//保存数据到缓存
F('data');//读取缓存
F('data',NULL);//删除缓存数据
F('data',$Data);//保存数据到缓存
F('data');//读取缓存
F('data',NULL);//删除缓存数据
追问
问题是如何去触发这段代码呢?或者说,如果不使用缓存又如何做?
如果您给给一个实例,就好了!
追答
既然是利用框架,那么你不用管内部是怎么实现的,直接用就是了,就当是用php系统提供的session一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很难,除非你的网站特别简单,一个数据表就够。。一般的网站都有多个不同的表,里面字段大都不一样,还有多个数据库的情况,你就耐心点每个方法都进去次吧,啊~,乖
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以静态化首页
而且这些信息数量不大也不会影响网站的访问速度
放在数据库中就可以了
或者像一楼的兄弟说的卸载conf文件中
而且这些信息数量不大也不会影响网站的访问速度
放在数据库中就可以了
或者像一楼的兄弟说的卸载conf文件中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询