php模板如何使用,PHP View,使用模板

本文讨论了在PHP MVC架构中,如何通过使用模板和输出缓冲优化视图层。作者分享了一个自定义View类实现,比较了include和require的区别,并提出使用output buffering来灵活处理模板评估和后处理。读者将了解是否这种方法是最优实践以及何时使用输出缓冲来增强模板渲染的灵活性。
摘要由CSDN通过智能技术生成

好吧,我的问题很简单,但是很难接受该解决方案,但是无论如何..接下来,我有一个“微型框架”,可以编写单个方案,对我有很大帮助,可以加速但是,在某种程度上,问题仍然存在,在某种程度上,使用模板方案非常容易,也非常有趣,因为当您必须更改与可视化相关的任何内容时,模板只会更改,但是,及时渲染此模板,这是最好的方法?我目前正以这种方式工作:

class View {

private $vars;

public function __get ( $var ) {

if ( isset( $this->vars [ $var ] ) ) {

return $this->vars[ $var ];

}

}

public function assign ( $var , $value ) {

$this->vars [ $var ] = $value;

}

public function show ( $template ) {

include_once sprintf ( "%s\Templates\%s" , __DIR__ , $template ) ;

}

}

它不是完整的代码,我正在构建结构并正在审查该方案,因此我要执行以下操作..

require_once 'MVC/Views/View.php';

$View = new View ( ) ;

$View->assign( 'title' , 'MVC, View Layer' ) ;

$View->show ( 'test.phtml' );

和模板

<?php echo $this->title ?>

输出是正确的,所有工作都按预期进行,但是我的问题是:这是最好的方法吗?包括文件并让剧本解释用.phtml编写的代码

解决方法:

在许多框架中,我都看到了这种说法:

public function show ( $template ) {

ob_start();

require sprintf ( "%s\Templates\%s" , __DIR__ , $template ) ;

return ob_get_flush();

}

使用输出缓冲区,可以使模板评估为字符串,而不是直接在输出中发送模板.当您需要在评估模板后更改标题或进行后处理时,这可能会派上用场.

使用require代替include_once可以使您多次渲染同一模板(例如,如果您想要某种模板组合),并且在找不到模板文件时出错(include不会给出错误)情况).

标签:output-buffering,templates,php

来源: https://codeday.me/bug/20191101/1987481.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值