加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 陷入困境,需要帮助突破到一个新的水平

发布时间:2020-12-13 13:28:38 所属栏目:PHP教程 来源:网络整理
导读:我正在一个简陋的网站上工作,我的平庸,自学成才的 PHP技能,目前的界面结构是这样的: ?php if (A) { $output = someFunc(A); } else if (B) { $output = anotherFunc(B); } else if (C) { $output = yetAnotherFunc(C); } else { $output = 'default stuff';
我正在一个简陋的网站上工作,我的平庸,自学成才的 PHP技能,目前的界面结构是这样的:
<?php
  if (A) {
    $output = someFunc(A);
  } else if (B) {
    $output = anotherFunc(B);
  } else if (C) {
    $output = yetAnotherFunc(C);
  } else {
    $output = 'default stuff';
  }
?>
<html template top half>

<?php echo $output; ?>

</html template bottom half>

这起初工作正常,看起来非常有条理,但所需的功能增加了10倍,并且很快变成了一个难以维护,令人尴尬的混乱,我不知道如何摆脱它.

我觉得为每种情况调用的函数都写得很好并且集中精力,但是如何处理用户和创建布局的函数之间的中间步骤以及处理返回时,我感到很茫然.

我觉得MVC是一个解决方案吗?但是我很难掌握如何从这里到那里……

对于上述代码可能引发的任何令人头疼或令人不快的回忆,我深表歉意.感谢您的时间.

你似乎已经开始了许多人的工作方式,一个持续增长的大型if和/或case语句.所有那些“如果”检查都需要时间. MVC绝对是一个很好的方法,但有很多方法可以实现它.我建议还要寻找通常与MVC一起使用的Front Controller设计模式.

改变工作方式的一种方法是使用关联数组切换到定义的“动作”列表.并将您的功能更改为包含.然后你可以有多个函数,变量和其他处理代码.

$actions = array(
'A'=>'action1.php','B'=>'action2.php','C'=>'action3.php','default'=>'action_default.php'
);
if ( isset( $actions[ $_GET['action'] ] ) ) {
    include( $actions[ $_GET['action'] ] );
} else {
    include( $actions['default'] );
}

那么你的“索引”文件只是一个路由工具,它几乎就是前端控制器的概念.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读