<?php
/**
 * Created by PhpStorm.
 * User: Zip
 * Date: 14/12/9
 * Time: 下午7:40
 */

namespace Hood;

use Hood\Cache\Memcached as Mcd;
use Hood\Cache\Memcache as Mc;
use Hood\Cache\CacheRedis;
use Hood\Cache\FileCache;

class Cache
{
    /**
     *
     * @param null $node
     * @return Mcd
     */
    static public function Memcached($node = null, $childNode = 'hosts')
    {
        $mc = new Mcd();
        $mc->setNode($node)->setChildNodes($childNode);
        return $mc;
    }

    /**
     * @param null $node
     * @param string $childNode
     * @return Mc
     */
    static public function Memcache($node = null, $childNode = 'hosts')
    {
        $mc = new Mc();
        $mc->setNode($node)->setChildNodes($childNode);
        return $mc;
    }

    /**
     * @return CacheRedis
     */
    static public function Redis()
    {
        $servers = array();
        $persistentID = '';
        return new CacheRedis($servers, $persistentID);
    }


    /**
     *
     * @param null $childNode
     * @param string $node
     * @param null $cachePath
     * @return FileCache
     */
    static public function File($childNode = null, $node = 'cache', $cachePath = null)
    {
        return new FileCache($childNode, $node, $cachePath);
    }
}