草庐IT

逻辑回归

全部标签

php - 业务逻辑应该与模型分开吗?

我们正在开发一个代码量相当大的PHP5项目,上周我开发了一个RESTfulAPI的PoC。我们将模型类与业务类分开。在尝试实现CRUD功能时,我发现,直接针对模型实现CRUD会非常简单,而针对业务逻辑实现它则不然,因为它的功能特定于当前存在的View,并且它的接口(interface)不'提供实现API所需的通用数据访问模型。考虑到这一点,我想到了以下问题:与数据交互的最佳方式是什么,同时保持模型的灵active和保持模型目前不关心的功能(比如发送邮件更改电子邮件地址时的激活链接)?之前经常使用django,其中大部分业务逻辑都在模型中实现,为什么还要将业务逻辑分开?你有任何现实生活中

PHP PDO 潜在的逻辑错误

我是PHP新手,想知道为什么这段代码没有向数据库插入任何内容(返回0)。我确定这一定是一个逻辑错误,因为我没有收到任何错误消息。classDbConnection{protected$db_conn;public$db_host="localhost";public$db_name="todo";public$db_user="root";public$db_pass="";functionconnect(){try{$this->db_conn=newPDO("mysql:host=$this->db_host;dbname=$this->db_name",$this->db_use

PHP条件逻辑,具体顺序?

我有一个这样的条件语句:if($_POST['password']==$_POST['repeat']&&$_SESSION['type']=="admin")但是假设我还希望条件对类型为“super用户”(而不是“管理员”)的用户评估为真。例如,我可以这样写:if($_POST['password']==$_POST['repeat']&&$_SESSION['type']=="admin"||$_SESSION['type']=="super用户")但是假设PHP从左到右读取条件和方程式,那么即使“密码”和“重复”不相等,“super用户”也有可能使条件计算为真,因为我们放置了虚数

php - 如何在 Laravel 5 用户注册后运行更多逻辑

我在Laravel5中使用默认的用户注册器。当用户注册时,session中存储了一些信息,所以在创建用户后我想运行一些代码来处理session数据,存储它并链接它给用户。我是否可以修改注册器中的创建方法:publicfunctioncreate(array$data){returnUser::create(['name'=>$data['name'],'email'=>$data['email'],'password'=>bcrypt($data['password'])]);}为此:publicfunctioncreate(array$data){$user=User::create

php - PHP 中的逻辑与赋值运算符优先级

最近我遇到了这样的片段:$x=2&&$y=3;echo(int)$x.':'.(int)$y;产生输出1:3。通过查看运算符precedencesheet我看到逻辑运算符||和&&的优先级高于赋值运算符=。所以第一个表达式应该被评估为$x=(2&&$y)=3;变成$x=(2&&null)=3;最后评估为$x=false=3;其次-赋值运算符具有正确的结合性,因此解释器应该尝试执行false=3这当然是非法的。所以在我看来,上面提到的代码片段根本不应该编译并且必须抛出解析或运行时错误。但不是那个脚本产生1:3。这意味着解释器执行的操作是:a)$y=3b)2&&$yc)$x=(2&&$y)

逻辑漏洞总结

文章目录一、逻辑漏洞概述1.概述2.特点二、常见的漏洞场景示例1:短信验证码回传示例2:修改响应包重置任意账号密码示例3:重置密码链接中token值未验证或不失效导致任意账号密码重置示例4:重置密码链接中token值未验证或不失效导致任意账号密码重置示例5:客户端流程控制绕过示例6:参数篡改示例7:支付数据篡改示例8:水平越权示例9:垂直越权三、漏洞测试要点要点1-登录模块要点2-业务办理模块要点3-登录认证模块要点4-验证码模块要点5-业务流程乱序测试要点6-业务数据安全测试要点7-密码找回模块一、逻辑漏洞概述1.概述逻辑漏洞:又称业务逻辑漏洞,是指由于程序逻辑不严谨或者逻辑太复杂,导致一些

PHP:如何开始测试大型现有代码库并测试生产站点的回归?

我至少负责大量现有的PHP代码,它们迫切需要测试,而且我还需要一些方法来检查生产站点的错误。我已经使用PHP多年,但不幸的是我是测试新手。(对不起!)。虽然为具有可预测结果的代码编写测试似乎很容易,但我无法思考如何测试实时站点以确保正确的输出。我知道在测试环境中,我可以将数据库设置为已知状态...但是是否有适当的方法或技术来测试实时站点?我应该从哪里开始?[我知道PHPUnit和SimpleTest,但还没有选择哪一个] 最佳答案 像PHPUnit这样的单元测试框架更多是为了测试独立的逻辑单元(即类)的功能而构建的,而不是整个事件站

php - Codeigniter:嵌套 View 中的逻辑

我有一个包含页眉、页脚和主要内容的template.php。但是,在我的template.php中,我想添加一个使用购物车类、表单类和session类的购物车小部件。我希望小部件最初是购物车之前的一种形式,它从用户那里收集简单数据(姓名、电子邮件、一些下拉框和复选框信息)并将这些参数发送到session(使用CI_SESSIONS存储在数据库中)将由应用程序(相关产品)(根据复选框选择显示产品)和购物车使用。我希望逻辑通过小部件进行处理,而不必重新加载整个页面(AJAX/JS?),然后在用户浏览应用程序时使用session来存储购物车数据。任何人都可以推荐任何阅读Material或图书

php - 如何添加 laravel 多个 required_if(如 AND 逻辑)

如何在Laravel验证中添加Laravel多个required_if(如AND逻辑)。我想要求'featured_img'if(pagetype=='2'andfeatured=='1')我试试这个:'featured_img'=>'required_if:pagetype,2|required_if:featured,1|mimes:jpg,jpeg,bmp,png',但是此验证使得“featured_img”成为必需的,尽管其中一个是错误的(它就像逻辑“OR”。我想让它像“AND”逻辑)谢谢 最佳答案 您可以使用自定义验证,例

php - 只是为了好玩 - 开始解决一个棘手的 PHP 逻辑问题

作为提高PHP开发人员技能的一种方式,我经常用来自网站ProgrammingPraxis的问题来挑战自己。.99%的时间我都可以自己解决这些谜题,但我被这个问题困住了,需要一些关于如何开始的指导。这个谜语叫做“多户住宅”。这是问题所在:贝克、库珀、弗莱彻、米勒和史密斯住在一栋只有五层楼的公寓楼的不同楼层。贝克不住在顶层。库珀不住在底层。弗莱彻不住在顶层或底层。米勒住在比库珀更高的楼层。史密斯不住在与弗莱彻家相邻的楼层。Fletcher不住在与Cooper相邻的楼层。每个人都住在哪里?我的基本问题是:我不明白如何测试和评估不同的逻辑情况。那么举例来说,如果我们要测试贝克是否属于一楼,那么