在ThinkPHP模板中需要使用“|”分隔符引入函数,然后使用“=”号来为函数赋参。在模板中调用formatTime自定义函数和调用PHP内置的函数是一样的。这里只是简单地演示在模板中怎样使用函数,在实际应用开发中,读者可根据需要在模板标签中引入函数。在ThinkPHP模板引擎中,使用函数嵌套的顺序由左到右,即模板引擎最先解释左边的函数,最终的结果由最右边的函数决定,如以下代码所示。......
2023-11-04
视图,通俗地讲就是网页。视图的呈现需要视图引擎来运算,在主流的PHP MVC框架中都有各自的视图解释引擎,最常见的是使用标准的PHP来解释,还有XML、XHML、Smarty、TagLib等。对于Smarty,相信接触过PHP的读者都已经有所了解,这里需要重点理解TagLib及XML解释方式。ThinkPHP的模板引擎高效之处在于灵活的视图标签,熟悉这些标签的使用方式将能够提高视图模板的设计水平。接下来将从基本的创建视图开始,然后深入介绍默认视图引擎的使用。创建一个视图可分为以下几个步骤。
首先确定视图模板的分类及模板的存放位置,例如Tpl/Index/index.html,其中Index对应控制器;index.html对应控制器方法。如果使用模块分组的方式,需要在Index目录前加上对应的分组名称目录。系统通过DEFAULT_THEME配置项指定项目视图模板的主题,默认为空主题。应用多主题的好处是可以方便地在网站中应用多种模板。打开index.html,代码如下所示。
上述代码中,在视图模板中使用了变量{$title},该变量的值由控制器方法提供。需要注意的是,使用默认的{$}边界符,在视图模板中使用JavaScript等脚本时,有可能造成冲突。安全起见,这里需要将默认的变量符号改成<!--{$}-->,Conf/config.php配置信息如下。
读者可以根据需要进行修改,另外建议将边界符配置放到全局配置文件中。本书后面的章节内容中均使用该配置信息,在此予以说明。此时index.html模板代码如下所示。
最后,需要在控制器方法中使用assign为变量赋值,如以下代码所示。(www.chuimin.cn)
assign是默认视图引擎的一个实例方法,该方法用于分配变量,变量的值可以是PHP支持的数组、对象或者PHP变量。ThinkPHP内置了多种视图引擎,在默认情况下系统会使用内置的视图引擎,如果使用第三方的视图引擎,变量的分配方式会有所不同。
视图引擎的最终运行结果将转换成标准的PHP,<!--{}-->边界符也会被解释成标准的PHP变量,如以下代码所示。
ThinkPHP默认的视图引擎支持标准的PHP代码。如果使用PHP代码,模板标签的转换步骤将省略,从而在一定程度上提高性能。要启用PHP代码解释,需要修改配置项TMPL_DENY_PHP值为false或者'TMPL_ENGINE_TYPE'=>'PHP'。
有关PHP MVC开发实战的文章
在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
Json能够应用在许多场合,包括PHP本身就提供了对Json的反序列化操作。事实上,Json在传送大量数据时本身是存在溢出的,所以在设计时服务端要尽量避免输出大量Json数据。要达到前后台分离设计,使用Json通信最好不过了,因为主流的UI设计框架都对Json提供了完善的支持,下面将以Jquery为基础,详细介绍Ajax与Json的开发过程。由于使用Jsonp进行异步获取数据,所以Ajax异步通信变得简单。......
2023-11-04
在数据库开发中,查询和插入数据是同等重要的,ThinkPHP对数据的插入、更新等都做了高度封装,系统提供create方法,用于创建数据对象。图7-2 create创建数据流程2.create数据操作前面介绍了create方法的运行过程,读者只需要理解即可,在实际应用开发中创建数据的过程是极其简单的。下面将结合示例代码,介绍create方法的实际应用,加深对create方法的认识。一切完成后,此时数据对象存放于内存中,使用add方法进行提交,完成整个create创建数据的过程。......
2023-11-04
图6-4 网站布局ThinkPHP 3.0之前的模板引擎没有布局的概念,但开发人员可以使用include包含文件达到网站布局的效果。布局文件允许嵌套,如果网站页面更加复杂,还可以结合include等标签实现开发需求。另外,如果不需要全局布局,也可以单独在当前页面中使用布局文件,只需要在当前页面头部加上
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
5.统计查询如果严格来区分,统计查询并不算查询语言的讲述范畴,因为在ThinkPHP中要进行字段数值统计并不需要额外定义数组元素,只需要更改显示方式即可。......
2023-11-04
相关推荐