Php 如何使干燥状态感知导航栏?
对于我的webapp,我需要使导航栏状态感知并适应多种组合:用户是否登录,其角色(管理员、用户、来宾等)等 在HTML中注入多嵌套的Php 如何使干燥状态感知导航栏?,php,design-patterns,Php,Design Patterns,对于我的webapp,我需要使导航栏状态感知并适应多种组合:用户是否登录,其角色(管理员、用户、来宾等)等 在HTML中注入多嵌套的ifs和函数调用会让我畏缩不前,我想让我的代码尽可能干净、干燥,以便于维护 所以,我想写一个函数来自动化这个过程。看起来像这样的东西: public function insertButtons(array $buttons) { foreach($buttons as $button) { echo "<a href='" . $bu
if
s和函数调用会让我畏缩不前,我想让我的代码尽可能干净、干燥,以便于维护
所以,我想写一个函数来自动化这个过程。看起来像这样的东西:
public function insertButtons(array $buttons) {
foreach($buttons as $button) {
echo "<a href='" . $button['url'] . "'>". $button['text'] . "</a>";
}
}
然后将它们注入HTML:
<div class="nav navbar">
<!-- ... -->
<?php insertButtons($buttons); ?>
<!-- ... -->
</div>
当然,这种解决办法的缺点是缺乏灵活性
在这些情况下是否有任何已知的模式可供使用?如果是,它们是什么,或者在哪里可以找到有关它们的信息。如果不是,我的伪代码是一个可行的解决方案吗?您的思路是正确的。您已经有效地创建了一个菜单工厂,将菜单创建数据抽象为一个方法。如果你想增加更多的灵活性,你可以将菜单信息存储在数据库表中,并让query返回正确的菜单项。太好了!尽管我从未想过将UI信息存储在数据库中。这是一个普遍的做法吗?是的,这是相当普遍的。好吧!很抱歉没有对您的评论进行投票,因为您的声誉不够:/
<div class="nav navbar">
<!-- ... -->
<?php insertButtons($buttons); ?>
<!-- ... -->
</div>