静态缓存规则是静态缓存生成中最关键的配置。静态缓存规则与URL路由规则有些类似,这两者的核心都是基于正则匹配的。其中index即为控制器动作,表示在URL请求到index动作时,系统将生成index.html静态缓存文件。文件缓存规则共由缓存规则、缓存有效期及附加规则构成。同样,在缓存规则中也是允许这样使用的。......
2023-11-04
ThinkPHP提供了HTML_CACHE_ON配置参数,用于设置是否开启静态缓存功能。所谓的静态缓存就是文件缓存(ThinkPHP还提供了内存缓存、数据库缓存多种方式),HTML_CACHE_RULES关联数组可以灵活地配置静态缓存的各种规则。默认情况下,系统将使用md5的方式建立缓存,缓存规则可以方便地创建基于控制器名称,动作名称的缓存文件。缓存规则一旦配置好,系统会自动识别所需要缓存的页面。静态规则定义在缓存模式中,常见的缓存模式如以下代码所示。
上述代码中,演示了4种静态缓存模式。其中ActionName模式表示将根据所有控制器动作(方法)建立缓存;ModuleName将根据所有控制器建立缓存;ModuleName:ActionName将根据指定的控制器动作建立缓存;*表示通配模式,将建立全站静态缓存(所有能访问的页面)。
缓存有效期和附加规则都是可选参数,这里重点需要理解静态缓存规则。静态缓存规则将约束缓存文件的创建方式,以下代码即为简单的静态规则。
如以上代码所示,一共定义了两条静态规则。其中第1条将Content控制器中的Index动作建立静态缓存,静态缓存文件名将根据Get参数进行创建,最终访问http://tp.localhost/index.php/content/id/1页面时所创建的静态缓存文件名为content-1.html;第2条将根据Index控制器index动作创建静态缓存,当用户访问http://tp.localhost时,系统自动创建首页(index.html)缓存。
默认情况下静态缓存文件存放在home/Html目录下,通过配置参数HTML_PATH修改静态缓存文件存放目录。需要注意的是,开启静态缓存不仅需要正确配置HTML_CACHE_RULES选项,还必须开启HTML_CACHE_ON选项,两者缺一不可。要测试静态缓存,需要注意以下几个步骤。
➢关闭程序的调试模式,即在入口文件中设置define("APP_DEBUG",false),否则所有关于静态缓存的选项都将无效。(www.chuimin.cn)
➢如果是Linux平台需要手动在项目根目录下创建一个名为Html的目录,然后赋给读写权限。
➢相应的动作中必须要有输出模板(即使用$this->display()),并创建相应的模板文件。
➢在非调试模式下,ThinkPHP会生成预编译文件Runtime/~runtime.php,路由规则修改后需要手动删除该文件。
静态缓存能够有效提高页面的响应速度,尤其在大型网站中更是需要使用静态缓存功能,本节简单地介绍了静态缓存规则配置,更详细的缓存功能将在本书第10章进行介绍,在此读者只需要理解静态缓存的作用即可。
有关PHP MVC开发实战的文章
静态缓存规则是静态缓存生成中最关键的配置。静态缓存规则与URL路由规则有些类似,这两者的核心都是基于正则匹配的。其中index即为控制器动作,表示在URL请求到index动作时,系统将生成index.html静态缓存文件。文件缓存规则共由缓存规则、缓存有效期及附加规则构成。同样,在缓存规则中也是允许这样使用的。......
2023-11-04
将数据全部缓存到Memcached之后,程序在获取数据时并不直接连接数据库,而是连接缓存服务器。服务器关机后,内存中的数据也将会被清空,所以尽量搭建可容灾的Memcached服务器集群。......
2023-11-04
PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。......
2023-11-04
SVN提供了完善的用户管理权限,用户管理权限在多人项目开发中具有非常重要的作用,它能够明确地让开发人员在自己的职责范围内编写代码。SVN使用authz文件作为权限配置文件,该文件提供了用户组功能,组别权限配置能够具体到项目的文件夹。打开svnserve.conf文件,找到#authz-db=authz节点,将#注释符与空格删除,这样就完成了权限配置。至此,SVN权限配置就完成了。需要说明的是,SVN只是实现版本控制,但对于团队开发来说,版本控制只是文件管理的一部分。......
2023-11-04
前面已经简单介绍过ThinkPHP视图引擎,这些标签处理机制类似于JSP tag,使用XML作为标签的渲染方式,开发人员可以方便地在网页中嵌入XML标签,然后由ThinkPHP视图引擎解释成标准的PHP代码。ThinkPHP的视图引擎之所以高效,主要体现在它的标签扩展性。ThinkPHP的视图标签扩展性够完美地与后台控制器代码相结合,例如在Smarty中使用函数功能,首先需要在后台PHP代码注册,而在ThinkPHP中完全不需要,如以下代码所示。......
2023-11-04
系统共支持7种模式扩展,下面将分别对最常用的几种模式进行介绍。表11-1 CURD操作接口如表11-1所示,参数$data表示传入或返回的数据信息;参数$options表示返回当前操作的模型名称及表前缀。......
2023-11-04
Eclipse是IBM的一个商业项目,2001年11月起IBM将Eclipse贡献给开源社区,从此奠定了Eclipse的地位。Eclipse通过PDT插件来提供PHP开发支持,Eclipse PDT能够让编写PHP变得简单和高效,下面将介绍Eclipse PDT的安装和使用。Eclipse PDT的安装有两种方式,一种是直接通过Eclipse的扩展进行安装;另一种是下载带PDT插件的Eclipse。下面将以Eclipse3.5.2作为基础,讲解Eclipse PDT插件的安装过程。如果下载带PDT插件的Eclipse,只需要双击Eclipse启动程序即可,此时Eclipse就提供了完美的PHP编程支持。......
2023-11-04
图12-2 SOAP服务如果服务没有开启,需要在PHP配置文件中开启,如以下代码所示。其中参数1表示SOA服务描述文件,即WSDL文件,该文件是SOAP通信的核心;参数2表示SOAP协议版本,常用的版本有1.0及1.2,本章内容及示例全部基于SOAP 1.2版本实现。使用普通的Firebug等插件不能获取到异常信息,而断点调试是PHP的弱项,所以调试问题将会是SOAP开发首要面对的问题。......
2023-11-04
相关推荐