ホームページ > バックエンド開発 > PHPチュートリアル > ecshop が memcached を使用するようにテンプレート クラスを変更した後、呼び出しが成功したかどうかを確認する方法

ecshop が memcached を使用するようにテンプレート クラスを変更した後、呼び出しが成功したかどうかを確認する方法

WBOY
リリース: 2016-06-13 12:11:14
オリジナル
1184 人が閲覧しました

ecshop が memcached を使用するようにテンプレート クラスを変更した後、呼び出しが成功したかどうかを確認するにはどうすればよいですか?
問題は次のようなものです。
function fetch
function is_cached
これら 2 つの関数部分を変更した後、
ecshop 自体はエラーを報告しませんが、今では ecshop のキャッシュ呼び出しかどうかはわかりません成功していますか?親指を立ててください。ヘルプ。

<br />/**<br />     * 处理模板文件<br />     *<br />     * @access  public<br />     * @param   string      $filename<br />     * @param   sting      $cache_id<br />     *<br />     * @return  sring<br />     */<br />    function fetch($filename, $cache_id = '')<br />    {<br />        if (!$this->_seterror)<br />        {<br />            error_reporting(E_ALL ^ E_NOTICE);<br />        }<br />        $this->_seterror++;<br /><br />        if (strncmp($filename,'str:', 4) == 0)<br />        {<br />            $out = $this->_eval($this->fetch_str(substr($filename, 4)));<br />        }<br />        else<br />        {<br />            if ($this->_checkfile)<br />            {<br />                if (!file_exists($filename))<br />                {<br />                    $filename = $this->template_dir . '/' . $filename;<br />                }<br />            }<br />            else<br />            {<br />                $filename = $this->template_dir . '/' . $filename;<br />            }<br /><br />            if ($this->direct_output)<br />            {<br />                $this->_current_file = $filename;<br /><br />                $out = $this->_eval($this->fetch_str(file_get_contents($filename)));<br />            }<br />            else<br />            {<br />                if ($cache_id && $this->caching)<br />                {<br />                    $out = $this->template_out;<br />                }<br />                else<br />                {<br />                    if (!in_array($filename, $this->template))<br />                    {<br />                        $this->template[] = $filename;<br />                    }<br /><br />                    $out = $this->make_compiled($filename);<br /><br />                    if ($cache_id)<br />                    {<br />                        $cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id;<br />                        $data = serialize(array('template' => $this->template, 'expires' => $this->_nowtime + $this->cache_lifetime, 'maketime' => $this->_nowtime));<br />                        $out = str_replace("\r", '', $out);<br />						<br />						$memcache = new Memcache;<br />						$memcache->connect("127.0.0.1", 11211);<br />						$CacheID = md5($filename.$cache_id.$cachename);<br /><br />                        while (strpos($out, "\n\n") !== false)<br />                        {<br />                            $out = str_replace("\n\n", "\n", $out);<br />                        }<br />						<br />						$memcache->set($CacheID , '<?php exit;?>' . $data . $out , 3600);<br />						<br />                        $this->template = array();<br />                    }<br />                }<br />            }<br />        }<br /><br />        $this->_seterror--;<br />        if (!$this->_seterror)<br />        {<br />            error_reporting($this->_errorlevel);<br />        }<br /><br />        return $out; // 返回html数据<br />    }<br />
ログイン後にコピー


<br />/**<br />     * 判断是否缓存<br />     *<br />     * @access  public<br />     * @param   string     $filename<br />     * @param   sting      $cache_id<br />     *<br />     * @return  bool<br />     */<br />    function is_cached($filename, $cache_id = '')<br />    {<br />        $cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id;<br />		<br />		$memcache = new Memcache;<br />		$memcache->connect("127.0.0.1", 11211);<br />		$CacheID = md5($filename.$cache_id.$cachename);<br />		<br />        if ($this->caching == true && $this->direct_output == false)<br />        {<br />			if ($data = $memcache->get($CacheID))<br />            {<br />                $data = substr($data, 13);<br />                $pos  = strpos($data, '<');<br />                $paradata = substr($data, 0, $pos);<br />                $para     = @unserialize($paradata);<br />                if ($para === false || $this->_nowtime > $para['expires'])<br />                {<br />                    $this->caching = false;<br /><br />                    return false;<br />                }<br />                $this->_expires = $para['expires'];<br /><br />                $this->template_out = substr($data, $pos);<br /><br />                foreach ($para['template'] AS $val)<br />                {<br />                    $stat = @stat($val);<br />                    if ($para['maketime'] < $stat['mtime'])<br />                    {<br />                        $this->caching = false;<br /><br />                        return false;<br />                    }<br />                }<br />            }<br />            else<br />            {<br />                $this->caching = false;<br /><br />                return false;<br />            }<br /><br />            return true;<br />        }<br />        else<br />        {<br />            return false;<br />        }<br />    }<br />
ログイン後にコピー

-----ソリューションのアイデア------ ----
データを確認していただけますか

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート