网站地图    收藏   

主页 > 后端 > php资料库 >

Yii MemCache 应用实例_自学php网

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] 1.建立表结构 CREATE TABLE IF NOT EXISTS `config` ( `name` varchar(128) NOT NULL, `value` varchar(128) NOT NULL, KEY `name` (`name`), KEY `value` (`value`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='网站信息表'; 首先要说明一下...

1.建立表结构

 

CREATE TABLE IF NOT EXISTS `config` (
  `name` varchar(128) NOT NULL,
  `value` varchar(128) NOT NULL,
  KEY `name` (`name`),
  KEY `value` (`value`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='网站信息表';

首先要说明一下,由于网站名称,keyword等信息是单一调用,所以无需建立主键,或自增长ID,只要我们在保存或提取时进行二维拼装即可。下面会提供示例!

2.配置memcache

由于Yii可以配置多个cache的实例,所以调用起来非常方便,如其中一个配置是memcache,我们只需要Yii::app()->memcache->set($key,$value);即可完成memcache的写入

以下是配置实例config/main.php

'components'=>array(
                'memcache'=>array(
                        'class'=>'CMemCache',
                            'servers'=>array(
                                    array(
                                        'host'=>'127.0.0.1',
                                        'port'=>11211,
                                        'weight'=>60,
                                    ),
                                ),
                ),
),

3.配置全站调用

如何配置全站都可以调用?因为我们每个Controller都继承了components/Controller,所以我们可以在这里配置一个全局数组的属性,即可在全站任何地方调用得到这个属性!

建立公共属性

public $global=array();

属性附值


 

public function init()
{
	$this->global = $this->setKey();
}

组装数组

	private function setKey()
	{
		if(!Yii::app()->memcache->get('keywords'))
		{
			$cache = Config::model()->findAll();
			foreach($cache as $key=>$n)
			{
				$keys[$n->attributes['name']] = $n->attributes['value'];
			}			
			Yii::app()->memcache->set('keywords',$keys);
		}
		return Yii::app()->memcache->get('keywords');
		
	}

通过以上数组拼装,我们就可以得出如何拼装数组更新数据库了

OK,数据处理完成,我们现在只要在views/main.php调用相关数据即可,以keyword为例

<meta name="keywords" content="<?php echo $this->global['keywords'];?>" />

done!

 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论