云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

百度云_阿里云拍照地点_超低折扣

小七 141 0

拉威尔Laravel 6.0有什么新功能?了解最新的laravel6.0版本中的新功能和产品。

拉拉维尔6.0来了!Laravel的创建者taylorotwell已经调侃6.0发布几个月了,今天它终于正式发布了。让我们看看有什么变化,以及如何立即开始使用它。有什么新消息吗?语义版本控制虽然从5.8升级到6.0是一个重要的版本,但Otwell已经提到,在新的特性和变化方面,这个更新将更像是从5.8升级到5.9。Laravel在每一个主要版本中都有大量的更新,这在一个年轻的框架中是很典型的。整个5.x中的所有更新都为稳定和健壮的框架打下了基础。随着6.0的发展,您将不必担心每一个新的主要版本都会发生巨大的突破性变化和重写。由于这种新的稳定性,Laravel框架包正式采用了更传统的语义版本控制。作业中间件现在,您可以将其提取到中间件中,然后将其附加到作业中,而不是在作业周围手动添加额外的样板代码!此示例显示如何在6.0之前的作业中添加速率限制。对于每个需要它的作业,可以将它添加到作业的handle()方法中。//应用程序/作业/jobtobethrotted.php//执行作业公共函数句柄(){//每5秒处理一个作业Redis::throttle('key')->块(0)->允许(1)->每隔(5)->然后(函数(){//处理工作},函数(){//无法获取锁return$this->release(5);});}通过这个新版本,我们可以从handle()中提取代码并将其移动到特定于作业的中间件中。你可以在app/Jobs/Middleware中创建一个目录(或者在任何你想要的地方,Laravel对此没有意见)并在该文件夹中为中间件添加一个文件。//应用程序/作业/中间件/速率有限.php...命名空间App\Jobs\Middleware;使用Illuminate\Support\Facades\Redis;等级税率有限{//处理排队的作业。公共函数句柄($job,$next){Redis::throttle('key')->块(0)->允许(1)->每隔(5)->然后(function()使用($job,$next){//已获得锁$next($job);},函数()使用($job){//无法获取锁$job->释放(5);});}}现在您可以将这个中间件附加到作业上,它将在处理之前通过中间件运行。如果您熟悉路由中间件,这个过程非常类似。//应用程序/作业/jobtobethrotted.php使用App\Jobs\Middleware\ratelimmited;//获取作业将使用的中间件公共功能中间件(){return[新费率限制];}公共函数句柄(){//处理工作}这将使你的工作文件小,更容易阅读,并专注于他们的具体任务。它还允许您在整个作业中轻松地重用中间件。惰性收集laravel6.0引入了lazy collections,它允许您在处理大量数据时保持较低的内存使用率。如果您使用的是雄辩的模型,您可以选择一次将一个模型加载到内存中,而不是一次将所有的加载到内存中,方法是使用cursor()方法而不是all()。//这将同时将所有雄辩的模型加载到内存中//这可能是一个非常大的数字,如果你有数千个帖子$posts=App\Post::all()->过滤器(函数($Post){return$post->id>500;});通过从all()切换到cursor(),一次只能将一个雄辩的模型加载到内存中,因为cursor()使用新的LazyCollection实例。$posts=App\Post::cursor()->过滤器(函数($Post){return$post->id>500;});foreach($posts as$post){echo$post->id;}雄辩的子查询增强功能雄辩总是使运行复杂查询更容易。当涉及到在单个调用中运行子查询或查询中的查询时,此新版本将为您提供更多帮助。当您需要从两个具有关系的表中选择信息时,这很有用。在laravel5.x中,您有时会受限于在子查询中可以执行的操作,并且常常被迫使用DB::raw()来链接查询。addSelect方法已经添加到子查询中,这应该可以消除很多麻烦!雄辩的子查询现在也可以访问orderBy。对于本例,假设您有两个表:hotels和reservations。您想知道为特定酒店预订的最新房间类型。现在可以执行以下操作,而不是执行两个独立的雄辩查询:使用应用程序\保留;使用App\Hotel;return Hotel::addSelect(['last_booted_room'=>预订::select('房间类型')->"where列"酒店.id')->'orderU'创建人','->最新()->限制(1)])->获取();改进的自定义授权响应如果你使用了一个新的验证方法,那么使用avel.0的新方法来检查largate。这使得在授权请求期间向用户提供自定义消息变得更加容易,例如,如果用户的请求被拒绝,则会出现特定的错误消息。例如,假设您有下面的方法来确定用户是否有权编辑帖子。在6.0之前,很难检索此消息并将其显示给用户。通过引入Gate::inspect()方法,您现在可以轻松地检索完整的自定义响应,并将其发送回用户。如果要将文章的编辑限制为只有具有管理员角色的用户,则可能已经为编辑帖子创建了一个入口定义。//应用程序/提供商/AuthServiceProvider.php...公共函数boot(){$this->registerPolicies();//定义确定谁可以编辑文章的门Gate::define('edit',函数($user){return$user->isAdmin? 响应::allow():Response::deny('您必须是管理员才能编辑帖子');});}通常,您只需使用allows或densies方法来查看是否应该授权该用户执行某个操作。响应依赖于来自上面定义的Gate::define方法的布尔响应。下面的示例将不给您自定义响应,只提供布尔值。if(Gate::allows('edit')){//让用户编辑}if(Gate::densies('edit')){//让用户编辑}如果要访问更详细的自定义拒绝响应,现在可以使用Gate::inspect。//获取gate返回的完整授权响应$response=Gate::inspect('edit');if($response->allowed()){//让用户编辑帖子}其他{//显示拒绝消息//'您必须是管理员才能编辑帖子。'echo$response->message();}Auth0还提供了一种简单而快速的方法来向laravelapi添加授权。"拉拉维尔6.0就在这里!看看有什么新的和变化的!"在推特上留言Laravel UI-composer包另一个需要注意的更新是laravel/ui包的提取。前端脚手架仍然存在,只是默认不包括在内。这意味着在一个新的laravel6.0应用程序中,您不会看到任何Vue或Bootstrap脚手架。该软件包现在包括React、Vue和引导的预置。在5月份的一条推文中,奥特韦尔提到他正在考虑增加一个顺风选项!如果您仍然希望包含它,可以使用composer require laravel/ui将其带回。新品牌随着每一个主要版本的发布,也有新的品牌随之而来,6.0也不例外!除了上面的新徽标,您还可以找到全新的重新设计拉拉维尔网网站。拉斐尔蒸汽最后,但肯定不是最不重要的,拉雷维尔6.0的发布还包括了一个备受期待的产品在拉雷维尔生态系统中的发布——拉威尔蒸汽。在此发布之前,大多数人使用laravelforge来提供和部署他们的应用程序。使用Forge,您可以连接您选择的服务器(Digital Ocean、AWS等),Forge将专门为您的Laravel应用程序提供它。这当然很棒,但你还是得自己管理更新。拉雷维尔蒸汽做了所有这些和更多。Vapor不是自己管理和更新Laravel应用程序的服务器,而是完全没有服务器的!这并不意味着没有服务器参与,它只是意味着你不必处理它们。另一个好处是你只为你使用的东西付费。你不需要支付固定的月费,而是只在向你的申请提出申请时才收取费用。这也意味着你不必担心缩放,因为它会自动为你完成。以下是Vapor提供的一些更棒的功能:按需扩展—可以在作业进入时立即执行由AWS提供动力准备好应对突发交通部署期间零停机时间非常快多环境与免费虚荣网址测试(https://snowy-hurricane-12349834324432.vapor.build)维护模式可搜索日志从Vapor创建和缩放数据库备份和恢复数据库指标和监测与通知从Vapor dashboard购买域并管理DNS自动添加的SSL证书作业、工人、PHP更新等都是在后台处理的使用简单的蒸汽.yaml文件本团队所有成员每月39美元或不限费用。请记住,除此之外,您还需要为自己的AWS成本买单。升级到6.0Laravel文档估计从5.8升级到6.0大约需要一个小时。您的项目可能有其他依赖项和外部包,这可能会增加时间,因此在决定升级时请记住这一点。如何升级到Laravel 6.0在你的作曲家.json文件,将Laravel framework依赖项从5.8.*更改为^6.0。如果您使用的版本早于5.8,建议在切换到6.0之前升级到5.8。//在作曲家.json"laravel/framework":"^6.0",然后在你的终端运行中:编写器更新拉斐尔位移另一个很好的方法来管理你的升级,特别是对于更大的应用程序,是使用laravelshift。班次是一个自动化的工具