php – 编程逻辑最佳实践 – 冗余检查
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 编程逻辑最佳实践 – 冗余检查,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1579字,纯文字阅读大概需要3分钟。
内容图文
我正在创建一个大型的PHP项目,我对如何继续进行一个微不足道的疑问.
假设我们有一本课本,在这个课程中我有方法ReturnInfo:
function ReturnInfo($id) {
if( is_numeric($id) ) {
$query = "SELECT * FROM books WHERE id='" . $id . "' LIMIT 1;";
if( $row = $this->DBDrive->ExecuteQuery($query, $FetchResults=TRUE) ) {
return $row;
} else {
return FALSE;
}
} else {
throw new Exception('Books - ReturnInfo - id not valid.');
}
}
然后我有另一种方法PrintInfo
function PrintInfo($id) {
print_r( $this->ReturnInfo($id) );
}
显然,代码示例仅是示例,而不是实际的生产代码.
在第二种方法中,我应该(再次)检查id是否为数字?或者我可以跳过它,因为在第一种方法中已经注意了,如果它不是异常将被抛出?
直到现在我总是用冗余支票编写代码(无论是否已在其他地方检查过,我也会在这里查看)
有最好的做法吗?只是常识吗?
提前感谢您的回复.
解决方法:
好吧,通过检查每一层,问问自己你获得了什么.它更安全吗?不,因为使用该值的函数(唯一一个易受攻击的函数)执行检查本身.
它唯一的优点是你可以提前停止无效值,从而执行更少的代码.在知道值无效之前,它不必一直向下和备份.这可能是也可能不是真正的优势.
它确实会产生问题:你有更多的代码.你的代码不再干了.如果更改“有效”值的定义,则必须更改所有地方的检查.那些是更大的问题.
我会以这种方式处理问题:您的核心业务模型执行详细检查,最终负责确保值有效,并且它是唯一一个使用此值执行“危险”操作的人.外层(控制器,视图)仅传递值.除了一个例外:他们可能会进行“粗略”的数据验证.假设您的模型需要具有特定格式的电话号码.您应该在模型中检查此特定规则.在视图/控制器层中,您可以大致验证该值至少在某种程度上是数字的.说,你有一个Javascript检查.这会阻止您的核心应用程序出现错误的错误值,同时仍然可以灵活地在一个地方调整核心验证规则.
内容总结
以上是互联网集市为您收集整理的php – 编程逻辑最佳实践 – 冗余检查全部内容,希望文章能够帮你解决php – 编程逻辑最佳实践 – 冗余检查所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。