• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

构架上的困惑

php 搞代码 3年前 (2022-01-23) 33次浏览 已收录 0个评论
文章目录[隐藏]

本帖最后由 muyuruhai 于 2013-07-15 10:54:01 编辑

大家好
小弟曾经写过一个网站,用的方式如下

index.php 首页

后台logic 有一个php文件,logic.php

在 logic.php 里面写了
$action=_$POST[action]
switch $action
case check_userlogin
login(_$POST[username],_$POST[pwd]);
case put_comment
put_comment(_$POST[Comment]);

end switch

通过这样的方式调用不一样的action 执行不同的函数, logic.php就像所有操作的通用入口。

因为最近看了mvc框架,虽然明白原理,但是不深入的话感觉还是有些困难。
如果自己做一个小项目,这样switch的结构合适不合适呢?

前台如果用ajax,一般我就会调用 url:logic.php
data:{action:update_commnet,commnet:”hellow”} 类似这种

因为时间比较紧张,如果再现学一个MVC我怕会来不及,请给点建议

谢谢各位

回复讨论(解决方案)

没人回复,难道是我提问的方式不对?。。

你的那个写法与mvc的路由是一样的
不同之处在于你处理的是有限(已知)方法,而mvc路由可处理无限方法(增加方法不需更改路由代码)

没人回复,难道是我提问的方式不对?。。

这种方式可以啊,我也是用这种模式的
楼主对这种方式有什么质疑吗?

action少的话,没有问题,但是action过多的话,建议做成配置型的选择。

例如:
$actions = array(
‘check_userlogin’ => ‘login’,
…..
);
$action=_$POST[action];

if(isset($actions[$action]) && function_exists($actions[$action])) {
$actions[$action]();
}

你的那个写法与mvc的路由是一样的
不同之处在于你处理的是有限(已知)方法,而mvc路由可处理无限方法(增加方法不需更改路由代码)

原来如此,难怪我要定义很多的action每次都需要case多一个,真是一语道破天机,谢谢了,不过小项目路由不多的话应该问题不大吧。
而且我还把自己的template框架写在后台一个template文件中EOT里面,没有用模板引擎

action少的话,没有问题,但是action过多的话,建议做成配置型的选择。

例如:
$actions = array(
‘check_userlogin’ => ‘login’,
…..
);
$action=_$POST[action];

if(isset($actions[$action]) && function_exists($actions[$action])) {
$actions[$action]();
}

嗯,很有意思,不过小项目action应该不会太多,不过这样好像是很好,action就对应每一个function名字就好了,多谢指点
因为对hatacees不是很熟悉,看了CI和YII对调用来调用去感觉有点乱,所以才有了这个问题

同意楼上几位的解答。

自从rails成功之后,所有框架都遵循一个理念:约本文来源[email protected]搞@^&代*@码)网9搞代gaodaima码定大于配置。

尽量用约定好的规则,来代替主动的配置。这样会让代码的可扩展性更强也会进一步减少后续的维护工作量。

我用的是if elseif


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:构架上的困惑

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址