系统共支持7种模式扩展,下面将分别对最常用的几种模式进行介绍。表11-1 CURD操作接口如表11-1所示,参数$data表示传入或返回的数据信息;参数$options表示返回当前操作的模型名称及表前缀。......
2023-11-04
在11.1.2节中,已经介绍过ThinkPHP虽然可以切换到Smarty模板引擎,但这种切换方式是指标签解释的方式上,并不包括Smarty模板扩展功能。所以使用TMPL_ENGINE_TYPE切换方式,只能使用Smarty的基础解释功能,而不能使用Smarty特有的扩展功能,例如注册函数、注册对象等。而Smarty灵活及强大之极就在于扩展机制。但可以通过ThinkPHP扩展的方式引入Smarty,从而实现全功能的Smarty模板引擎。具体方法读者可参考11.1.2节。
配置完成后,只需要在项目conf目录中创建confing.conf配置文件即可,该文件用于直接在模板中获取配置数据。这样ThinkPHP就具备全功能的Smarty环境了。
本章接下来的全部内容基于ThinkPHP+Smarty环境。继续以mobile项目作为演示用例,此时通过http://tp.localhost/mobile.php网址将能够访问到该项目。index动作代码如下所示。
可以看到index控制器不再继承于Action类,而是继续于PublicAction类。该类是一个自定义的项目成员控制器,用于全局控制,代码如下。
这里的Smarty引擎是ThinkPHP提供的,如果读者需要最新版本的Smarty,只需要覆盖Smarty目录即可。也可将Smarty存放于当前项目扩展目录,然后使用import函数导入即可。index动作对应的index.html模板文件如以下代码所示。(www.chuimin.cn)
上述代码是一个基于JqueryMobile的手机页面代码,并且使用Smarty标签及语法。读者在实验时可以使用普通的模板代码,这里只是为了减少代码量,方便讲解,对Smarty的功能介绍并无影响。运行效果如图13-4所示。
图13-4 在ThinkPHP中使用Smarty
有关PHP MVC开发实战的文章
系统共支持7种模式扩展,下面将分别对最常用的几种模式进行介绍。表11-1 CURD操作接口如表11-1所示,参数$data表示传入或返回的数据信息;参数$options表示返回当前操作的模型名称及表前缀。......
2023-11-04
Smarty并不是一项新的PHP技术,而在PHP 4.x以前就已经是非常流行的界面与后台相分离的技术。直至现在,Smarty依然盛行,这点从各大招聘网站中可见一斑。所以要深入理解这两者之间的关系,还需要读者真正掌握Smarty的使用。图13-1 Smarty前台后分离图13-2 Smarty执行流程相信读者对Smarty的执行流程并不陌生,因为前面介绍的ThinkPHP模板引擎就是以相同的方式处理模板的。所以本章重点介绍Smarty引擎,读者在深入掌握该模板引擎的使用后,将会对MVC设计有更深入的认识。......
2023-11-04
ThinkPHP的一大特点就是扩展灵活,同样行为也是可以自定义扩展的。接下来将深入介绍自定义行为扩展的实现。上述代码是一个名为AutoCheckUserLogin的自定义行为类。最后还需要确保自定义行为类继承于Behavior基类。事实上,AutoCheckUserLogin配置项并不是必需的,也就是说在配置时,自定义行为就已经能够正常运行了,配置项只不过用于实现灵活的配置。此时,再次访问项目,只有Index控制器下的页面受AutoCheckUserLogin自定义行为影响,其他页面则不受影响。......
2023-11-04
前面介绍过,系统内置的行为是系统正常执行的基础,所以开发人员不需要改动这些扩展。事实上系统已经提供了一系列行为扩展,在项目中使用时,直接配置即可。配置项LIMIT_REFLESH_TIMES表示刷新的间隔,以秒为单位。......
2023-11-04
下面将分别对常用的扩展函数进行讲解。最终将会得到“一个多字节安全的substr()操作基础上的字...”,读者可以在此基础上继续完善msubstr函数。build_count_rand函数返回的结果是关联数组,在实际应用开发中,可以将结果循环插入数据库等。byte_format函数通常用于上传文件检测,或者统计用户使用空间大小等。......
2023-11-04
在ThinkPHP模板中需要使用“|”分隔符引入函数,然后使用“=”号来为函数赋参。在模板中调用formatTime自定义函数和调用PHP内置的函数是一样的。这里只是简单地演示在模板中怎样使用函数,在实际应用开发中,读者可根据需要在模板标签中引入函数。在ThinkPHP模板引擎中,使用函数嵌套的顺序由左到右,即模板引擎最先解释左边的函数,最终的结果由最右边的函数决定,如以下代码所示。......
2023-11-04
首先需要使用content方法连接上Memcached服务器,代码如下所示。接下来将继续使用Memcache成员方法对缓存数据库进行操作。stats cachedump:显示slabs指定范围内的缓存项,例如stats cachedump 0,3。......
2023-11-04
接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。......
2023-11-04
相关推荐