Rumah  >  Artikel  >  php教程  >  php开发app接口之静态缓存

php开发app接口之静态缓存

WBOY
WBOYasal
2016-06-06 19:42:211477semak imbas

(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>
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn