Laravel 7.10中的数据库缓存锁定和相同会话并发限制

Laravel团队发布了v7.10.0版本,支持数据库驱动程序的缓存锁、相同会话ID请求并发限制和简化的真相测试断言。另外,7.10包含了很多新特性,除了7.x分支中的所有最新修复和更改外,Sjors Ottjes还提供了一种向后兼容的方法,即只使用类型暗示的闭包编写真值测试断言: 1// Before 2Mail::assertQueued(SubpictureFinishedEmail::class, function (SubpictureFinishedEmail $email) use ($user) { 3return $email->user->id === $user->id; 4}); 5 6// With 7.10+ 7Mail::assertQueued(function (SubpictureFinishedEmail $email) use ($user) { 8return $email->user->id === $user->id; 9});1011// or with a short closure1213Mail::assertQueued(14fn (SubpictureFinishedEmail === $user->id15);同一会话ID请求并发限制 Taylor Otwell提供了关于会话并发的长请求特性: 这个PR实现了一个长请求特性(基本上是从Laravel开始的),用于阻塞来自同一会话的并发请求,直到前面的请求完成。基本用例是防止并发请求将冲突数据写入会话和数据丢失。 请务必查看7.x同会话ID请求并发限制·拉请求#32636以获得完整的解释和详细信息。分页计数为子查询 分页作为groupby和havings的子查询计算: 用groupBy或having语句进行想象查询在Laravel是一个长期存在的问题,可以追溯到框架的最开始,它提出了许多问题……这个解决方案是几年前@acasar提出的,但我当时就把它写了下来,但老实说,我我认为这比我们现在的情况要好得多,所以我再提一次以供考虑。a强制转换:生成命令 Adrien Leloup提供了一个artisan make:cast控制台命令,该命令接受一个cast的名称并将其保存在app/Casts中。它生成了一个实现CastsAttributes接口的类。断言数据库计数 Christoph Rumpel为数据库表计数提供了一个测试断言: 1$this->assertDatabaseCount(\"users\", 50);23// A failure would look like:4// \"Failed asserting that table [users] matches expected entries count of 50. Entries found: 1.\"SMTP邮件驱动程序的身份验证模式 @fragkp提供了一个auth_modeSMTP驱动程序选项: 有时,设置显式auth_mode当您不想单独处理它时。 可能的值是:null、plain、login或cram-md5。将hasNamedScope添加到基本模型 Alex Bowers和Graham Campbell围绕模型范围提供了单独的pr。 首先,Alex在基本模型上提供了一个hasScope方法: hasScope方法清理检查作用域是否以动态方式存在…这个用例是包含要应用的过滤器数组的请求(通过作用域),代码更具表现力: 1publicfunctionindex(Request $request) 2{> 4 5foreach ($request->get(\"filters\", []) as $filter) { 6if ($post->hasNamedScope($filter)) { 7$post->{$filter}(); 8} 9}1011return $post->paginate();12} 请注意,方法名称更改为hasNamedScope在带有Graham的PR: 1. 的最终7.10版本中,如果存在作用域,则模型是真理的来源,但是构建器会绕过它来调用作用域方法。相反,我们应该委托给模型。这个PR解决了这个问题,并提供了一种可重用的方法来应用作用域。 2. #32622添加了hasScope,但是名称hasNamedScope会更加一致,由于callScope要求完全打开可调用,而callNamedScope要求实际的作用域名称。对数据库缓存驱动程序的缓存锁支持 泰勒·奥特韦尔从Symfony的锁组件PDOStore得到灵感,为数据库驱动程序提供了缓存锁支持。查看Pull Request#32639了解实现细节。发行说明 虽然我们没有查看本文中的所有新特性,但您可以看到下面的新特性和更新的完整列表,以及GitHub上7.9.0和7.10.0之间的差异。这个版本有一些令人印象深刻的新特性!您可以在最新的v7变更日志中看到它们:v7.10.0添加了 - 添加了artisan make:cast命令(#32594) - 添加了IlluminateFoundationTestingConcernsInteractsWithDatabase::assertDatabaseCount()(#32597) - 允许为SMTP邮件驱动程序(#32616)配置身份验证模式 - 添加了hasNamedScope()函数到基本模型(#32622,#32631) - 允许只使用闭包(32626、f69ad90、22d6fca)执行真值测试断言(#32626、f69ad90、22d6fca) - 将分页计数作为group by和havings的子查询(#32624) - 添加了带输出到控制台调度的回调(#32633、35a7883、8D620) - 添加了Cache::lock()对数据库缓存驱动程序的支持(#32639,573831b) - 相同会话ID请求并发限制(#32636) - 向集合添加skipUntil和skipWhile方法(#32672,#32676) - 支持delete with limit on sqlsrv(f16d325) - 添加了mergeFillable()和mergeGuarded()到Model(#32679) - 防止了Faker(2228233)中的内存泄漏 - 修复了设置组件名称和属性(#32599,f8ff3ca) - FixedIlluminateFoundationTestingTestResponse::assertSessionHasInput()(f0639fd) - Set relation connection on eager-loaded MorphTo((32602) - Filtering null\"s inhasMorph()(32614) - FixedIlluminateFoundationConsoleEventMakeCommand::alreadyExists()(7bba4bf) - FixedIlluminateConsoleSchedulingSchedule::compileParameters()(cfc3ac9,36e215d) - Fixed bug with model name inIlluminateDatabaseEloquentRelationNotFoundException::make()(f72a166) - 要包含在中的通过父母的垃圾有许多通过查询(#32609) - 更改了***29***(6c502c1) - 仅恢复公共关系(#32613,d82f78b,48e4d60) - 如果***30***(0557622)中的普通电子邮件为空,请使用单个空格 - 删除在***31中加载包清单时读取的浪费文件***(#32646) - 不要更改***32***和***33***对于某些更改列(fccdf7c) - 解析多通/一关系时使用表名(8d69454)

CSS无头WordPress到底有多合适?

我想知道无头WordPress会在哪里登陆。\"headless\"指的是只使用WordPress管理,通过WordPress restapi构建面向用户的站点,而不是传统的WordPress主题结构?WordPress的未来?还是相对利基?需求在哪里?当然,对它有需求。我知道很多人都这么做。例如,Gatsby有一个gatsby-source-wordpress插件,它允许您以使用wordpressrestapi的方式从WordPress站点获取内容,并将其缓存为GraphQL,以便在React-power...

日期:2021-06-24 01:15:34 浏览:614

CSS制作带有粘性页眉和页脚的表格变得更容易了

不久前,当我在博客中看到HTML中的粘性页眉和页脚时,一个表同时有粘性页眉和粘性第一列。在它里面,我从来没有在任何、或元素上使用position: sticky,因为即使Safari和Firefox可以做到这一点,Chrome也做不到。但是它可以做表格单元格,比如和,这是一个相当不错的解决办法。好吧,这已经改变了。我通过Twitter听说Chrome在v91中\"重写了表格\"。https://t.co/vTBplXWWtT我看到它掉了下来,升级了,然后做了一个快速测试。嘿,看看有粘性的表格页眉和页脚。@C...

日期:2021-06-24 02:00:01 浏览:932

CSS技巧编年史XXXX

只是我最近做的一些非现场工作的一个小链接汇总。就像我习惯的那样。DevJourney播客#151 Chris Coyier从陶瓷到CSS技巧和代码笔\"Chris带我们从玩他的第一个C64到他的陶瓷文学学士,再回到web开发。我们讨论了他在这一过程中的不同立场,以及他们是如何缓慢但肯定地引导他走向web开发的。我们浏览了CSS技巧的创造和娱乐,在开放中学习,以及美好的一天是什么样子。Podrocket Podcast火箭手术:Kaelan和Chris Coyier比较笔记我被要求删除这里嵌入的音频,如果你想...

日期:2021-06-24 02:00:03 浏览:856

CSS使用子资源完整性保护您的网站

当您从外部服务器加载文件时,您相信您请求的内容是您期望的内容。由于您不自己管理服务器,因此您依赖于另一个第三方的安全性,从而增加了攻击面。信任第三方并不是天生的坏事,但它肯定应该在网站安全的背景下加以考虑。一个真实的例子这不是纯粹的理论危险。忽视潜在的安全问题可能而且已经造成严重后果。2019年6月4日,Malwarebytes宣布他们在网站上发现了一个恶意的略读程序NBA.com. 由于Amazon S3存储桶受损,攻击者能够修改JavaScript库以窃取客户的信用卡信息。值得担心的不仅仅是JavaSc...

日期:2021-06-24 02:00:03 浏览:762

CSS联合的可能性

这是首字母缩略词RSS中不是形容词的一个词。非常简单联合更新:Lol这里有两个错误。RSS是首字母缩写而不是首字母缩写,\"Really\"是副词而不是形容词。RSS不仅仅是RSS阅读器。尽管如此,如果我不喜欢RSS阅读器。它是关于把内容放在一种设计成可移植的格式。内容的API并不是一个隐喻,这就是它的字面含义。RSS一直在我的脑海中,因为它就像我的日报,但我敢打赌它并不是人们关注的最高峰,甚至是开发者。尽管如此,它还是受到了一点关注,因为谷歌在androidchrome中引入了一个\"following\...

日期:2021-06-24 03:00:02 浏览:590

CSS在开放细节元素上添加背景

关于元素有一点奇怪,那就是,当它打开时,并不总是100%清楚该元素内部的内容和不内部的内容。我不是说总是重要,或者说它是一个特别难解决的问题,我只是注意到它最近出现在我身上。这里有一个直观的例子:这里的文本在里面,什么不是?这个解决方案是…CSS。把的样式设计得有点独特,这样问题就解决了。即使你希望排版是一样的,或者你不想任何独家风格,直到被打开,这仍然是可能的。使用alpha透明填充,您甚至可以确保更深的嵌套保持清晰。对于只插入内联内容的<详细信息>(如\"spoiler\"UI或其他内容),...

日期:2021-06-24 03:00:04 浏览:754

CSS容器查询的聚宝盆

我不知道是什么原因,但是我的feed在过去的几周里充斥着关于CSS容器查询的文章。有关集装箱查询的热议实际上始于去年12月,当时米丽亚姆•苏珊娜(Miriam Suzanne)发布了一份提案(采纳了大卫•巴隆的提案),但3月底,Una Kravets在推特上发布的一条消息称,他们在chrome://flags的#enable-container-queries旗后投放了Chrome Canary 91.0.4459.0在如此短的时间内,容器查询已经覆盖了如此多的地方,而且规范甚至还不是最终的!我很高兴看到C...

日期:2021-06-24 03:00:04 浏览:912

CSS target=blank

那会不会让你的眼睛有点抽搐?就像…是打字错误。值的开头应该是带有下划线的>。就像…Welp, that\"s correct syntax!In the case of the no-underscore>, the blank部分只是一个名称。可能是任何东西。它可以是>,或者,可能是为了预示这里的目的:>。是一个特殊的关键字,它将在新选项卡中打开链接,每次都打开一个新选项卡。>将在新选项卡中打开第一个单击的链接,但任何共享>的链接都将在新打开的选项卡中打开。我从来不知道这一点!我相信这条微博的解释。我创建...

日期:2021-06-24 04:00:02 浏览:998

CSS查看WCAG 2.5.5以获得更好的目标尺寸

你有没有经历过这样的挫折:试图点击移动设备上的一个按钮却什么也不做,因为目标大小不够大,而且它在你的按键上不起作用?也许你有更大的手指,像我一样,也可能是由于灵活性有限。这是因为我们,即用户,必须与之交互的元素的目标区域越来越小,我们来谈谈如何使其足够大,以便用户能够轻松地与元素交互。如果用户在一个小型手持式触摸屏设备上访问内容,而这个设备的不动产要紧得多,那么这将是一个特别大的问题。成功标准重温我在上一篇涉及WCAG 2.1标准的文章中谈到了成功标准,Label in Name。简言之,WCAG标准是我们...

日期:2021-06-24 04:00:03 浏览:535

CSS Trickz:Netlify随需应变构建器的实验

默认情况下,WordPress站点有一个API。想看看这个网站的最新帖子吗,只是一组特定的数据…JSON格式?给你。Alex Riviere用它做了一个笑话站点。起初,当加载该API客户端时,该站点将fetch。很好,但是如果我们认真考虑一下,它对于访问站点的人来说是非常低效的(也就是说,比服务器呈现的HTML慢),对于API命中率也不是很高。所以,Alex用Netlify函数重新编写了它。然后Netlify函数将从API中fetch(在云中的节点中),并为预呈现的HTML提供服务。这可能更好一些,但正如亚...

日期:2021-06-24 04:00:04 浏览:584