对于我的webapp,我需要让导航栏状态感知并适应多种组合:用户是否登录,其角色(管理员,用户,访客,......)等。
在HTML中注入多嵌套if
和函数调用让我感到畏缩,我希望尽可能保持代码干净和干净,以便于维护。
所以,我想写一个函数来自动化这个过程。看起来像这样的东西:
public function insertButtons(array $buttons) {
foreach($buttons as $button) {
echo "<a href='" . $button['url'] . "'>". $button['text'] . "</a>";
}
}
这样我就可以在$buttons
中制作Controller
:
if($_SESSION['loggedin']) {
$buttons[] = array('url' => '/profile', 'text' => $_SESSION['username']);
$buttons[] = array('url' => '/logout', 'text' => 'Log out');
} else {
// ...
}
然后将它们注入HTML:
<div class="nav navbar">
<!-- ... -->
<?php insertButtons($buttons); ?>
<!-- ... -->
</div>
这种解决方案的缺点当然是缺乏灵活性。
在这些情况下是否有任何已知的模式?如果是,它们是什么或在哪里可以找到有关它们的信息。如果没有,我的伪代码是否可行?