单例模式

单例模式:

<?php
/**
 * RedisOperate.php
 *
 * 单例模式设置Redis操作类
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/9/18 0018
 * Time: 下午 4:07
 */
class RedisOperate extends Redis
{
    // 实例
    protected  static $_instance = null;

    /**
     * Single instance (获取自己的实例)
     *
     * @return RedisOperate
     */
    public static function getInstance() {
        if (null === self::$_instance) {
            self::$_instance = new self();
            $host = $_SERVER['REDIS_HOST'];
            $port = $_SERVER['REDIS_PORT'];
            self::$_instance->connect($host, $port);
        }
        return self::$_instance;
    }
}

单例方法操作:

<?php
/**
 * singletonPattern.php
 *
 * 单例模式
 *
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/9/18 0018
 * Time: 下午 4:11
 */

// 载入Redis
include_once('RedisOperate.php');

class Client
{
    /**
     * 初始化配置文件
     *
     * @return null
     */
    public static function initConfig() {
        // Redis主机
        $_SERVER['REDIS_HOST'] = '127.0.0.1';

        // Redis port
        $_SERVER['REDIS_PORT'] = 6379;
    }

    /**
     * 主函数
     *
     * @return null
     */
    public function main() {
        // 初始化配置
        self::initConfig();

        // Redis key3
        RedisOperate::getInstance()->set("key3", "Redis Code3");
        echo RedisOperate::getInstance()->get("key3");
        echo "\r\n---\r\n";

        // Redis key4
        RedisOperate::getInstance()->set("key4", "Redis Code4");
        echo RedisOperate::getInstance()->get("key4");
        echo "\r\n---\r\n";
    }
}

/**
 * 程序入口
 */
function start() {
    $client = new Client();
    $client->main();
}

start();

 

posted @ 2017-09-18 16:25  魂牵绕明  阅读(152)  评论(0编辑  收藏  举报