PHP-如何实现MVC思想?

服务器管理 服务器管理 主题:1035 回复:2217

PHP-如何实现MVC思想?

浮生未歇 发布于 2016-12-31 字数 741 浏览 1096 回复 3

我始终不太明白怎么去实现MVC思想,我大概清楚MVC思想的结构,但具体实现我依然非常的迷糊?就好像现在一些操作控制我是用SWITCH,如何实现到控制器去操作呢?这个我完全没有思路,哪位朋友可以详细举个例子给我?

switch($_GET['op']){
case 'list':
$result = Article::List_Ad_Article();
break;
case 'single':
$result = Article::Single_Ad_Article();
break;
case 'add':
$result = Article::Add_Ad_Article();
break;
case 'update':
Article::Update_Ad_Article();
break;
case 'del':
Article::Del_Ad_Article();
break;
default:

break;
}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(3

归属感 2017-10-08 3 楼

建议看看开源的php框架,比如codeigniter:
http://codeigniter.com/
里面对mvc的实现说的很详细。

清晨说ぺ晚安 2017-01-12 2 楼

(1)mvc的概念
mvc就是模型(model)+视图(view)+控制(controller):
1 model层实现系统中的业务逻辑;
2 view层用于展示数据,并与用户的交互;
3 controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

(2)mvc的思路
controller负责处理某个请求,他的工作包含两个内容:1 调用model来处理业务逻辑 2 调用view来展示数据。

(3)mvc的设计
mvc是一种编程思想,至于代码设计,你可以根据分层来设计,只要做到职责划分清晰就可以了,以后可以根据需求来重构以便丰富该框架。

至于mvc在http中的应用中,关键是要解决url与controller如何映射的问题,现在罗列几个现成的方案:
1 通过将controller名称来作为url的基础来将controller映射到url,如spring
2 用配置文件来将controller映射到url,如struts
3 使用controller代码中的元数据将controller映射到url,如spring

泛泛之交 2017-01-10 1 楼

一般MVC中,一个URL可以对应一个唯一的Controller Action,所以你应该把不同的功能抽象为URL并在对应的Action中实现,而不是全部放在一起用Switch,下面是伪代码,供参考

URL: /article

对应
articleController::listAction()
{
Article::List_Ad_Article();
}

URL: /article/single/id

对应
articleController::singleAction()
{
Article::Single_Ad_Article();
}

URL: /article/add

对应
articleController::addAction()
{
Article::Add_Ad_Article();
}

RESTFul式的资源设计可能会更简洁。