自动页面输出以及视图高级功能
时间:2009-12-16
来源:互联网
sp框架的模板自动输出可以让我们不需要使用display语句就可以将模板输出,这简化了我们的日常编写的代码,同时也更有利于整理和归类模板,下面我们先介绍一下自动模板输出的方法,然后再介绍几个视图类的高级功能。
在上例中的main_test.html,我们放到了tpl下面的main文件夹中,改成test.html的文件名。那么,我们便可以使用:$this->display('main/test.html'); 来显示模板了。
main是控制器,test是动作,所以放到main目录下面,文件名为test.html,这样模板从逻辑上就与控制器相对应了。
进一步,我们希望能够更方便的输出模板。先来配置一下应用程序,以开启自动模板输出机制:
在视图的Smarty配置下面,我们看到加入了auto_display的设置,首先是开启了自动输出('auto_display' => TRUE),然后是配置模板的拼装模式和后缀,以刚才的例子为例:
'auto_display_sep' => '/', 即文件存放的地址是“模板目录/控制器名/动作名.html”,
'auto_display_sep' => '-',则文件存放的地址是“模板目录/控制器名-动作名.html”.
模板后缀名一般默认是.html即可,当然如果改成其他的后缀(如.php)也没问题。
那么,我们配置好后,现在可以直接让它进行输出了:
main目录中的test.html模板:
在控制器中,
访问test动作,将输出:
大家好,我是test.html。
$sent_ok等于:i am ok!
当然,如果我们使用了display方法,那么该动作就不再自动输出模板了。
看起来,sp框架的自动模板输出,好像仅仅是节省一行的代码,但是,千万可不要小看了这一点点的简便,从软件工程角度,它将带给我们的是更智能的开发模式和更高的开发效率。
如果我们使用Enterprise Architect之类的UML建模工具就会知道,Enterprise Architect会自动为我们生成PHP代码的架构。这些没有内部代码的架构,如果配合了sp框架的自动页面输出功能,有相当一部分的PHP页面,我们需要做的仅是制作页面模板,并不需要写PHP代码。
如网站上的“关于我们”,我们的控制器是main,动作是about,在Enterprise Architect中是
生成代码后是:
当然,main extends spController这个继承语句也是由Enterprise Architect生成的。
这里,我们可以看到,在使用自动模板输出功能时,我们只要在对应的目录中放入about.html模板即可,而并不需要写PHP代码。
下面我们介绍一下关于sp框架的View视图层的一些高级功能:
1. 获取Smarty对象。
在控制器中使用$this->getView(),即可获取到View层的Smarty对象,如下面例子将使用Smarty内置函数fetch来获取模板article_sidebar.html
2. 调试模板变量的方法。
在日常开发中,我们经常需要知道对模板的赋值是否正如我们所希望的一样,所以需要在模板输出的同时可以将变量调试输出。那么,我们便可以开启模板调试配置:
那么,在页面打开的时候,将同时打开一个变量调试的窗口,里面便是我们赋值到模板的变量。
3. 将自定义函数/类的方法注册到模板引擎中——spAddViewFunction
spAddViewFunction是sp框架的扩展应用中经常用到的一个核心函数。
用法:
spAddViewFunction($alias, $callback_function)
参数:
$alias,在模板中使用该函数/类的方法的名称
$callback_function,函数名称或对象的方法数组
例子:
那么在模板中,我们可以使用该函数了:
<{SHOWTIME}>
本文地址:http://speedphp.com/post/view-advanced.html
引用
在应用程序的开发中,我们会发现程序的模板会渐渐增多,而仅放到一个目录中似乎并不科学,所以我们可以简单的整理一下,将每一个控制器的模板都分别放单独的一个目录,这样模板可以更方便去辨认和使用,同时也有利于项目的协作。
在上例中的main_test.html,我们放到了tpl下面的main文件夹中,改成test.html的文件名。那么,我们便可以使用:$this->display('main/test.html'); 来显示模板了。
main是控制器,test是动作,所以放到main目录下面,文件名为test.html,这样模板从逻辑上就与控制器相对应了。
进一步,我们希望能够更方便的输出模板。先来配置一下应用程序,以开启自动模板输出机制:
复制代码
|
在视图的Smarty配置下面,我们看到加入了auto_display的设置,首先是开启了自动输出('auto_display' => TRUE),然后是配置模板的拼装模式和后缀,以刚才的例子为例:
'auto_display_sep' => '/', 即文件存放的地址是“模板目录/控制器名/动作名.html”,
'auto_display_sep' => '-',则文件存放的地址是“模板目录/控制器名-动作名.html”.
模板后缀名一般默认是.html即可,当然如果改成其他的后缀(如.php)也没问题。
那么,我们配置好后,现在可以直接让它进行输出了:
main目录中的test.html模板:
复制代码
|
在控制器中,
复制代码
|
大家好,我是test.html。
$sent_ok等于:i am ok!
当然,如果我们使用了display方法,那么该动作就不再自动输出模板了。
看起来,sp框架的自动模板输出,好像仅仅是节省一行的代码,但是,千万可不要小看了这一点点的简便,从软件工程角度,它将带给我们的是更智能的开发模式和更高的开发效率。
如果我们使用Enterprise Architect之类的UML建模工具就会知道,Enterprise Architect会自动为我们生成PHP代码的架构。这些没有内部代码的架构,如果配合了sp框架的自动页面输出功能,有相当一部分的PHP页面,我们需要做的仅是制作页面模板,并不需要写PHP代码。
引用
Enterprise Architect是最适合PHP开发者的UML建模工具之一,还可以成为PHP开发者最好的PHP编辑器,同时这也是PHP程序员向PHP系统分析师迈进的必由之路。进一步了解Enterprise Architect软件的信息,请进入EA中文网(http://www.eauml.com)。
如网站上的“关于我们”,我们的控制器是main,动作是about,在Enterprise Architect中是
生成代码后是:
复制代码
|
当然,main extends spController这个继承语句也是由Enterprise Architect生成的。
这里,我们可以看到,在使用自动模板输出功能时,我们只要在对应的目录中放入about.html模板即可,而并不需要写PHP代码。
下面我们介绍一下关于sp框架的View视图层的一些高级功能:
1. 获取Smarty对象。
在控制器中使用$this->getView(),即可获取到View层的Smarty对象,如下面例子将使用Smarty内置函数fetch来获取模板article_sidebar.html
复制代码
|
2. 调试模板变量的方法。
在日常开发中,我们经常需要知道对模板的赋值是否正如我们所希望的一样,所以需要在模板输出的同时可以将变量调试输出。那么,我们便可以开启模板调试配置:
复制代码
|
那么,在页面打开的时候,将同时打开一个变量调试的窗口,里面便是我们赋值到模板的变量。
3. 将自定义函数/类的方法注册到模板引擎中——spAddViewFunction
spAddViewFunction是sp框架的扩展应用中经常用到的一个核心函数。
用法:
spAddViewFunction($alias, $callback_function)
参数:
$alias,在模板中使用该函数/类的方法的名称
$callback_function,函数名称或对象的方法数组
例子:
复制代码
|
那么在模板中,我们可以使用该函数了:
<{SHOWTIME}>
本文地址:http://speedphp.com/post/view-advanced.html
作者: jake 发布时间: 2009-12-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28