Framework页面缓存实例,PHP网页游戏学习之Xnova

作者: 新金沙平台  发布:2019-07-20

十四、建筑页面(BatimentBuildingPage.php)

一般使用工厂方式:Zend_Cache::factory()的创建缓存对象。
 
Zend_Cache::factory方法有四个参数: 前端类型,后端类型,前端参数,后端参数。
 
以下为页面缓存实例:

我们在使用thinkphp开发的时候,有时候会用到getById('1')这个方法快速的获取一条信息的内容,这个方法比用where(" id =1 ")->find()好用多了,同时查询效率也比find快速。

现在开始解析真正的建筑页面,里面用到的函数不少,不过都不难,我们一起来看。

class Zend_Controller_Shawn extends Zend_Controller_Action
{  
  public static $cache;

  public function init()
  {
    $frontendOptions = array(
      'lifetime'    => 3600, // 缓存寿命
      'debug_header'  => true, // true是打开debug,通常设为false
      'regexps'     => array(
          '^/$'      => array('cache' => true), // 所有页面都缓存
          '^/index/'    => array('cache' => true), // 缓存index下所有action页
          '^/index/search' => array('cache' => false), // 对search action不缓存
      ),
      'default_options' => array(
          'cache_with_get_variables'   => true,
          'cache_with_post_variables'   => true,
          'make_id_with_cookie_variables' => true, // 注意如果开了session要把这个打开
          'cache_with_session_variables' => true, // 注意如果开了session要把这个打开
          'cache_with_files_variables'  => true,
          'cache_with_cookie_variables'  => true, // 注意如果开了session要把这个打开
      )
    );

    $backendOptions = array('cache_dir' => 'C:/www/zend/cache/'); // 缓存存放路径,必须存在并可写

    self::$cache = Zend_Cache::factory('Page', 'File', $frontendOptions, $backendOptions);

    self::$cache->start(); // 开始缓存

    //如有需要,可以再其他页面进行缓存清理
    Zend_Controller_Shawn::$cache->clean(Zend_Cache::CLEANING_MODE_ALL); 
  }
}

很多人在刚开始接触这个方法的时候,没有多留意它的内部实现机制,仅仅认为是通过id来获取信息,而事实并非如此。
例如有的系统里存在getByTitle("nihao")、getByMoney('1000')这类方法,这些与刚才提到的getById('1')很相似,同时实现的功能原理也与getById('1')一样。
其实类似这种getById($id)、getByTitle($title)、getByUserName($username)等等,以“getBy 字段”的方法有个专有名词叫做“魔术方法”,它后面的字段可以是数据表中的任何一个字段,返回结果只能是查询出来的第一条数据,这种方法查询的效率很高,很好记住。
有时候我们的字段不是连起来的,例如:user_name 这样子的字段,我们是不是这样子写(getByUser_name($name))呢?答案是否定的,thinkphp中不支持这样子的方法,我们需要使用驼峰法来命名,应该写成这样 getByUserName($name)就可以了!

一开始先检查星球的已使用空间并更新,使用函数CheckPlanetUsedFields,这个函数前面讲过,实现也不难。

 更多细节,可以参考 Zend 官方手册  

您可能感兴趣的文章:

  • php 魔术方法使用说明
  • 详解php的魔术方法__get()和__set()使用介绍
  • php中的常用魔术方法总结
  • 深入PHP5中的魔术方法详解
  • PHP 5.3新增魔术方法__invoke概述
  • PHP类中的魔术方法(Magic Method)简明总结
  • php面向对象中的魔术方法中文说明
  • PHP魔术方法__ISSET、__UNSET使用实例
  • PHP魔术方法__GET、__SET使用实例
  • php魔术方法与魔术变量、内置方法与内置变量的深入分析
  • PHP中的魔术方法总结和使用实例
  • php中的常用魔术方法汇总
  • php魔术方法功能与用法实例分析

接下来这个是我们前面重点讲过的结构,就是判断是否输入;所以我们先跳到这段代码的后面看,但是这里有几个函数是处理一些建筑队列的。

您可能感兴趣的文章:

  • windows下zendframework项目环境搭建(通过命令行配置)
  • Zend Framework数据库操作技巧总结
  • Zend Framework数据库操作方法实例总结
  • Zend Framework入门应用实例详解
  • Zend Framework入门教程之Zend_View组件用法示例
  • Zend Framework开发入门经典教程
  • 解析zend Framework如何自动加载类
  • Zend Framework 2.0事件管理器(The EventManager)入门教程
  • Zend Framework smarty用法实例详解
  • Zend Framework入门知识点小结
  • Zend Framework缓存Cache用法简单实例
  • Zend Framework基于Command命令行建立ZF项目的方法
  1. SetNextQueueElementOnTop:我们讲过,处理队列中的下一个建筑

2. ShowBuildingQueue:构造当前的队列,代码虽多,但简单,有兴趣可以自己跟踪

  1. BuildingSavePlanetRecord:保存前面代码构造的建筑队列到数据库

4.BuildingSaveUserRecord:保存资源积分(事务官)到数据库

然后要构造建筑页面,我做一个文字说明,大部分UI的构造不写:

本文由新金沙平台发布于新金沙平台,转载请注明出处:Framework页面缓存实例,PHP网页游戏学习之Xnova

关键词: 新金沙平台