动态配置类

浏览:2567 最后更新:2013-09-23 08:52 分类:类库 关键字: 动态配置
将网站配置或动态配置写入数据库。以键值对的形式存取。<?php
/**
 * 站内配置
 * @author 李俊
 *
 */
class config {
    public $confModel;
    function __construct() {
        $this->confModel=D('config');
    }
    /**
     * 设定键名为key键值为value的配置
     * Enter description here ...
     * @param $key
     * @param $value
     */
    function setConf($key,$value) {
        $data['key']=$key;
        $data['value']=$value;
        $this->confModel->add($data);
    }
    /**
     * 更新键名为key的配置
     * Enter description here ...
     * @param $key
     * @param $value
     */
    function updateConf($key,$value) {
        $data['value']=$value;
        $this->confModel->where(array('key'=>$key))->save($data);
    }
    /**
     * 检测键名为key的配置是否存在
     * Enter description here ...
     * @param $key
     */
    function definedConf($key) {
        $rst=$this->confModel->where(array('key'=>$key))->find();
        if ($rst==null) {
            return false;
        }else {
            return true;
        }
    }
    /**
     * 获取键名为key的键值
     * Enter description here ...
     * @param unknown_type $key
     */
    function getConf($key) {
        $rst=$this->confModel->where(array('key'=>$key))->find();
        return $rst['value'];
    }
    /**
     * 获取配置键名为key的键值
     * @param <b style='color:red'>string $key 键名</b>
     * @return any||null
     */
    static function get($key) {
        $conf=new config();
        if (($rst=$conf->getConf($key))==null) {
            return null;
        }else {
            return json_decode($rst);
        }
    }
    /**
     * 设定键名为key键值为value的配置
     * @param string <b style='color:red'>$key 键名</b>
     * @param any <b style='color:red'>$value 键值</b>
     */
    static function set($key,$value) {
        $value=json_encode($value);
        $conf=new config();
        if ($conf->definedConf($key)) {
            $conf->updateConf($key, $value);
        }else {
            $conf->setConf($key, $value);
        };
    }
}
数据表-- phpMyAdmin SQL Dump
-- version 3.5.2.2
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2013 年 04 月 18 日 11:45
-- 服务器版本: 5.5.24-log
-- PHP 版本: 5.3.13

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 数据库: `alumni`
--

-- --------------------------------------------------------

--
-- 表的结构 `config`
--

CREATE TABLE IF NOT EXISTS `config` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `key` varchar(255) NOT NULL DEFAULT '' COMMENT '键',
  `value` text COMMENT '值',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='站内配置' AUTO_INCREMENT=2 ;

--
-- 转存表中的数据 `config`
--

INSERT INTO `config` (`id`, `key`, `value`) VALUES
(1, 'test', '"testvalue"');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
评论( 相关
后面还有条评论,点击查看>>