构架上的困惑

php中文网
发布: 2016-06-23 14:15:43
原创
929人浏览过

本帖最后由 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成功之后,所有框架都遵循一个理念:约定大于配置。

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

我用的是if elseif 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号