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'];?>" />