我有一个为某个网站指定的课程。在该站点中,我有不同的功能从数据库中检索数据并将该数据存储到数组中。我在同一个类中有其他函数来获取数据并将其格式化为html并返回包含数据库中数据的html。
例如......
function GetUserProfile($userID){
$query = 'SELECT * FROM users WHERE userID='.$userID;
.......
blah blah blah
.......
$user = mysqli->fetch_assoc();
return $user;
}
function FormatUserProfile($user, $showDesc = false){
$profile = '< h1 >'.$user['userName'].'< / h1 >';
if($showDesc){
$profile .= '< div >'.$user['description'].'< / div >';
}
return $profile;
}
...
因此,如果我有一个单独收集信息的功能,另一个功能是单独格式化收集的信息。 主要是因为我将在不同的页面上显示相同的数据,但不同的页面显示不同的数据,例如搜索只会显示用户名称,例如用户个人资料页面会显示用户名和描述。
这是一种好的做法,还是有更好的方法来做到这一点?
答案 0 :(得分:1)
这是一个很好的做法。就个人而言,我使用以下模板“引擎”:
<?php
class Template{
static function show($path, $arg = NULL){
include "templates/$path.php";
}
static function get($path, $arg = NULL){
ob_start();
self::show($path, $info);
$block = ob_get_contents();
ob_end_clean();
return $block;
}
}
在您的情况下,模板将是这样的:
<?php
echo '<h1>'.$arg['user']['userName'].'</h1>';
if($arg['showDesc']){
echo '<div>'.$arg['user']['description'].'</div>';
}
?>
您可以使用模板参数解压缩数组,但我更喜欢将它们保存在一个位置,因此代码不会混淆。 (你总是知道来自输入的内容,以及模板中以这种方式定义的内容。为了缩短时间,你可以使用$ _而不是$ arg。)对于像这样的小例子,好处并不明显,但对于较大的模板,它可以节省大量的变量操作,因为您可以使用PHP自己的模板功能。
答案 1 :(得分:0)
您可以使用Smarty模板引擎或其他东西 类似。
它的模板分开存储,如下所示:http://www.smarty.net/sampleapp/sampleapp_p5.php