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!
|