ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php-雄辩的ORM活动记录-这是正确的方法吗?

2019-11-09 08:29:02  阅读:196  来源: 互联网

标签:laravel activerecord eloquent php database


我想自从我开始反叛并质疑我所学到的一切以来,我终于达到了代码青春期.我希望这里的某个人可以指出正确的方向.当前应该是简单而又简短的任务,最终要花费几个小时,因为我坐着凝视着几行代码,并质疑这是否确实是正确的方法…

这是一个例子.我们拥有一个系统,使用户可以创建帖子并在该帖子中提及某人.我们有一个控制器来获取请求,然后将其发送到PostService,该服务的方法如下:createPostByUser(int $id,string $title,string $content)并最终发送至$postingUser-> post($title, $string)保存帖子的位置.

在createPostByUser方法中,我们将检查是否有任何@mentions,然后将其传递给MentionService.因此,在这种情况下,我们将访问:$mentionService-> createMentionByUser(int $id,字符串$username,Mentionable $mentionable),然后检查提及用户($id)和提及的用户($username)是否存在或可能甚至如果提及已存在但已被软删除,请恢复.如果尚不存在且无法还原并且两个用户均有效,则我们将继续调用$mentioningUser-> mention($提及的用户),其中将保存提及.

尽管所有这些工作都有效,但我开始看到一些问题.什么会阻止新开发人员仅跳过服务层并直接进入用户对象并使用这些方法?我的意思是,在MentionService中,我们在保存提及之前先检查一切是否良好,例如检查所需的两个用户是否均有效,是否应该恢复提及.等等.是什么会阻止新的未知开发人员直接进入用户对象并仅仅创建新提及而无需三思而后行?

希望有人能指出正确的方向.我们在正确的轨道上吗?

我只是在想什么吗?

解决方法:

我认为无法以技术方式解决此问题.任何设计模式和任何建筑风格都可能以某种方式被误解和故意规避.此问题可能可以在组织层(在您的团队中)解决.一种可能性是,例如代码审查,培训和文档编制.最重要的是带有分支和请求请求的代码审查.随着时间的流逝,您可以为新开发人员获得学习效果,并防止新的失败.

标签:laravel,activerecord,eloquent,php,database
来源: https://codeday.me/bug/20191109/2012946.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有