站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
SpeedPHP/自动显示模板
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{SpeedPHP top}} sp框架的模板自动输出可以让我们不需要使用display语句就可以将模板输出,这简化了我们的日常编写的[[代码]],同时也更有利于整理和归类模板,下面我们先介绍一下自动模板输出的方法,然后再介绍几个视图类的高级功能。 在[[应用程序]]的开发中,我们会发现程序的模板会渐渐增多,而仅放到一个目录中似乎并不科学,所以我们可以简单的整理一下,将每一个控制器的模板都分别放单独的一个目录,这样模板可以更方便去辨认和使用,同时也有利于项目的协作。 ==自动页面输出以及视图高级功能== 例如将main_test.html放到tpl下面的main文件夹中,改成test.html的文件名。那么,我们便可以使用:$this->display('main/test.html'); 来显示模板了。 main是控制器,test是动作,所以放到main目录下面,文件名为test.html,这样模板从逻辑上就与控制器相对应了。进一步,我们希望能够更方便的输出模板。先来配置一下应用程序,以开启自动模板输出机制: <pre>$spConfig = array( ... 'view' => array( 'enabled' => TRUE, // 开启Smarty支持 'config' =>array( 'template_dir' => APP_PATH.'/tpl', // 模板页面所在的目录 'compile_dir' => APP_PATH.'/tmp', // 临时文件编译目录 'cache_dir' => APP_PATH.'/tmp', // 临时文件缓存目录 'left_delimiter' => '<{', // Smarty左限定符,默认是{ 'right_delimiter' => '}'>, // Smarty右限定符,默认是} ), 'auto_display' => TRUE, // 是否使用自动输出模板功能 'auto_display_sep' => '/', // 自动输出模板的拼装模式,/为按目录方式拼装,_为按下划线方式,以此类推 'auto_display_suffix' => '.html', // 自动输出模板的后缀名 ), ... </pre> 在视图的Smarty配置下面,我们看到加入了auto_display的设置,首先是开启了自动输出('auto_display' => TRUE),然后是配置模板的拼装模式和后缀,以刚才的例子为例: *'auto_display_sep' => '/', 即文件存放的地址是“模板目录/控制器名/动作名.html”, *'auto_display_sep' => '-',则文件存放的地址是“模板目录/控制器名-动作名.html”. 模板后缀名一般默认是.html即可,当然如果改成其他的后缀(如.php)也没问题。 那么,我们配置好后,现在可以直接让它进行输出了: main目录中的test.html模板: <pre><html><head></head> <body> 大家好,我是test.html。<br> $sent_ok等于:<{$sent_ok}> </body> </html> </pre> 在控制器中, <pre><?php class main extends spController { ... function test(){ $ok = "i am ok!"; $this->sent_ok = $ok; // 这里不需要display了 } ... } </pre> 访问test动作,将输出: 大家好,我是test.html。 $sent_ok等于:i am ok! 看起来,sp框架的自动模板输出,好像仅仅是节省一行的代码,但是,千万可不要小看了这一点点的简便,从[[软件]]工程角度,它将带给我们的是更智能的开发模式和更高的开发效率。 ==sp框架的View视图层的一些高级功能== ===获取Smarty对象=== 在控制器中使用$this->getView(),即可获取到View层的Smarty对象,如下面例子将使用Smarty内置函数fetch来获取模板article_sidebar.html <pre><?php class mainextends spController { ... function index() { $thecodes = $this->getView()->fetch("article_sidebar.htm"); } ... } </pre> ===调试模板变量的方法=== 在日常开发中,我们经常需要知道对模板的赋值是否正如我们所希望的一样,所以需要在模板输出的同时可以将变量调试输出。那么,我们便可以开启模板调试配置: <pre>$spConfig = array( ... 'view' => array( 'enabled' => TRUE, // 开启Smarty支持 'config' =>array( 'template_dir' => APP_PATH.'/tpl', // 模板页面所在的目录 'compile_dir' => APP_PATH.'/tmp', // 临时文件编译目录 'cache_dir' => APP_PATH.'/tmp', // 临时文件缓存目录 'left_delimiter' => '<{', // Smarty左限定符,默认是{ 'right_delimiter' => '}'>, // Smarty右限定符,默认是} ), 'debugging' => TRUE, // 是否开启视图调试功能,在部署模式下无法开启视图调试功能 ), ... </pre> 那么,在页面打开的时候,将同时打开一个变量调试的窗口,里面便是我们赋值到模板的变量。 ===将自定义函数/类的方法注册到模板引擎中——spAddViewFunction=== spAddViewFunction是sp框架的扩展应用中经常用到的一个核心函数。 用法: spAddViewFunction($alias, $callback_function) 参数: *$alias,在模板中使用该函数/类的方法的名称 *$callback_function,函数名称或对象的方法数组 例子: <pre>// 这是一个自定义函数,显示当前时间 function showtime(){ echo date("Y-m-d H:i:s"); } spAddViewFunction('SHOWTIME', 'showtime'); // 将其注册到模板当中 </pre> 那么在模板中,我们可以使用该函数了: <{SHOWTIME}> ==参考来源== http://speedphp.com/manual.html {{SpeedPHP}} [[category:SpeedPHP|Z]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:SpeedPHP
(
编辑
)
模板:SpeedPHP top
(
编辑
)