构架上的困惑
大家好
小弟曾经写过一个网站,用的方式如下
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

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP中有四种主要错误类型:1.Notice:最轻微,不会中断程序,如访问未定义变量;2.Warning:比Notice严重,不会终止程序,如包含不存在文件;3.FatalError:最严重,会终止程序,如调用不存在函数;4.ParseError:语法错误,会阻止程序执行,如忘记添加结束标签。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

HTTP请求方法包括GET、POST、PUT和DELETE,分别用于获取、提交、更新和删除资源。1.GET方法用于获取资源,适用于读取操作。2.POST方法用于提交数据,常用于创建新资源。3.PUT方法用于更新资源,适用于完整更新。4.DELETE方法用于删除资源,适用于删除操作。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

在PHPOOP中,self::引用当前类,parent::引用父类,static::用于晚静态绑定。1.self::用于静态方法和常量调用,但不支持晚静态绑定。2.parent::用于子类调用父类方法,无法访问私有方法。3.static::支持晚静态绑定,适用于继承和多态,但可能影响代码可读性。
