Home  >  Article  >  php教程  >  php开发app接口之静态缓存

php开发app接口之静态缓存

WBOY
WBOYOriginal
2016-06-06 19:42:211478browse

(1) 静态 缓存 这里技术的本质是我们将我们所需要的一些数据临时存在服务器的一些文件中。 ?php class File { private $_dir ; const EXT= 'php' ; public function __construct () { $this -_dir=dirname( __FILE__ ). '/files/' ; } public function cache

(1)静态缓存
这里技术的本质是我们将我们所需要的一些数据临时存在服务器的一些文件中。

<code><span><span><?php </span>
<span><span>class</span> <span>File</span>
{</span>
    <span>private</span> <span>$_dir</span>;
    <span>const</span> EXT=<span>'php'</span>;
    <span>public</span> <span><span>function</span> <span>__construct</span><span>()</span>
    {</span>
        <span>$this</span>->_dir=dirname(<span>__FILE__</span>).<span>'/files/'</span>;
    }
    <span>public</span> <span><span>function</span> <span>cacheDate</span><span>(<span>$key</span>,<span>$value</span>=<span>''</span>,<span>$path</span>=<span>''</span>)</span> 
    {</span>
        <span>$filename</span>=<span>$this</span>->_dir.<span>$path</span>.<span>$key</span>.<span>self</span>::EXT;
        <span>//将value值写入<strong>缓存</strong></span>
        <span>if</span>(<span>$value</span>!==<span>''</span>)
        {
            <span>//如果value值为null</span>
            <span>if</span>(is_null(<span>$value</span>))
            {
                <span>return</span> unlink(<span>$filename</span>);
            }
            <span>$dir</span>=dirname(<span>$filename</span>);
            <span>if</span>(!is_dir(<span>$dir</span>))
            {
                mkdir(<span>$dir</span>,<span>0777</span>);
            }
            <span>return</span> file_put_contents(<span>$filename</span>,json_encode(<span>$value</span>));
        }
        <span>if</span>(!is_file(<span>$filename</span>))
        {
            <span>return</span> <span>FALSE</span>;
        }
        <span>else</span>
        {
            <span>return</span> json_decode(file_get_contents(<span>$filename</span>),<span>true</span>);
        }
    }
}</span></span></code>

这里封装了一个类,下面是测试代码

<code><span><span><?php </span>
<span>require_once</span> <span>'./File.php'</span>;
<span>$data</span>=<span>array</span>(
    <span>'id'</span>=><span>1</span>,
    <span>'name'</span>=><span>'singwa'</span>,
    <span>'type'</span>=><span>array</span>(<span>4</span>,<span>5</span>,<span>6</span>),
    <span>'test'</span>=><span>array</span>(<span>1</span>,<span>45</span>,<span>67</span>=><span>array</span>(<span>123</span>,<span>'tsysa'</span>)),
);
<span>$file</span>=<span>new</span> File();
<span>//增加<strong>缓存</strong>的方式 这样会将指定的数据放入指定文件夹中</span>
<span>if</span>(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>),<span>$data</span>)
{
    var_dump(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>));
    <span>echo</span> <span>"success"</span>;
}
<span>else</span> 
{
    <span>echo</span> <span>"error"</span>;
}
<span>//取出<strong>缓存</strong>的方式</span>
<span>if</span>(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>))
{
    var_dump(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>));
    <span>echo</span> <span>"success"</span>;
}
<span>else</span> 
{
    <span>echo</span> <span>"error"</span>;
}
<span>//删除<strong>缓存</strong>的方式</span>
<span>if</span>(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>),<span>$value</span>=<span>null</span>)
{
    var_dump(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>));
    <span>echo</span> <span>"success"</span>;
}
<span>else</span> 
{
    <span>echo</span> <span>"error"</span>;
}</span></span></code>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn