首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 6.12.0 版本发布,支持从扩展包加载模型工厂

下面我们一起来看下其中比较重要的一些新特性: 1、重要特性 1)从扩展包加载模型工厂 在 Laravel 6.12 中,你可以在扩展包中直接使用已经存在的模型工厂,而不需要重新创建它们,方法是在服务提供者中引入对应的包含模型工厂的文件...,然后就可以使用它们了: // 在某个服务提供者中......6.12 版本之前需要这么做 factory(User::class)->create([ 'name' => 'Taylor', ]); factory(User::class)->create...2、更新日志 1)新增特性 新增 ServiceProvider::loadFactoriesFrom() 方法 新增 TestResponse::dumpSession() 方法 新增 Str::isUuid...防止表名前缀不明确的列 3)代码优化 修复下载大文件内存使用问题 4)代码调整 使用 Event::fake() 在解析缓存仓库替换事件调度器 声明:本文翻译整理自 Laravel News。

74710

PHP-web框架Laravel-实现日志记录(一)

在Web开发中,日志记录是一个必不可少的功能,它可以帮助我们记录应用程序的运行情况,方便我们在出现问题进行排查。...Laravel框架内置了一套功能强大的日志记录系统,可以记录各种类型的日志,比如应用程序错误日志、调试日志、性能日志等等。一、配置日志记录在Laravel框架中,可以通过配置文件来配置日志记录器。...默认情况下,Laravel使用config/logging.php文件来配置日志记录器。在该配置文件中,可以定义多个日志通道,每个通道可以使用不同的处理器来记录不同类型的日志。...daily通道将在7天后自动清除旧的日志文件。可以根据需要自定义不同的通道和处理器,并使用它们来记录不同类型的日志。二、使用日志记录在Laravel框架中,可以使用Log门面来记录日志。...; return view('example'); }}在上面的示例中,我们使用Log门面记录了一条info级别的日志

1.2K31
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel 5.2 文档 数据库 —— 起步介绍

默认情况下,Laravel 示例环境配置已经为 Laravel Homestead 做好了设置,当然,你也可以按照需要为本地的数据库修改该配置。...两个数据库连接的凭证(用户名/密码)、前缀、字符集以及其它配置将会共享mysql数组中的设置。 2、运行原生 SQL 查询 配置好数据库连接后,就可以使用DB门面来运行查询。...DB门面的statement方法: DB::statement('drop table users'); 监听查询事件 如果你想要获取应用中每次 SQL 语句的执行,可以使用listen方法,该方法对查询日志和调试非常有用...使用transaction方法不需要担心手动回滚或提交: DB::transaction(function () { DB::table('users')- update(['votes' =...4、使用多个数据库连接 使用多个数据库连接的时候,可以使用DB门面的connection方法访问每个连接。

3.2K71

Laravel源码解析之Cookie

为了安全起见,Laravel 框架创建的所有 Cookie 都经过加密并使用一个认证码进行签名,这意味着如果客户端修改了它们则需要对其进行有效性验证。...Cookie服务注册 之前在讲服务提供器的文章里我们提到过,Laravel在BootStrap阶段会通过服务提供器将框架中涉及到的所有服务注册到服务容器里,这样在用到具体某个服务才能从服务容器中解析出服务来...return $this; } } 它只是把这些默认参数保存到 CookieJar对象的属性中,等到 make生成 \Symfony\Component\HttpFoundation\Cookie对象才会使用它们...至于用门面 Cookie::queue以队列的形式设置Cookie其实也是将Cookie暂存到了 CookieJar对象的 queued属性里 namespace Illuminate\Cookie;...Laravel中Cookie模块大致的实现原理就梳理完了,希望大家看了我的源码分析后能够清楚Laravel Cookie实现的基本流程这样在遇到困惑或者无法通过文档找到解决方案可以通过阅读源码看看它的实现机制再相应的设计解决方案

2.3K50

Laravel 5.5 异常处理 & 错误日志的解决

日志文件最大生命周期 使用 daily 日志模式的时候,Laravel 默认最多为我们保留最近 5 天的日志,如果你想要修改这个时间,需要添加一个配置 log_max_files 到 app 配置文件:...'log_max_files' = 30 日志错误级别 使用 Monolog 的时候,日志消息可能有不同的错误级别,默认情况下,Laravel 将所有级别日志写到存储器,但是在生产环境中,你可能想要配置最低错误级别...当异常中存在这些方法,框架会自动调用它们: <?...也可以使用 Log 门面,手动记录日志信息。 <?...', ['id' = $user- id]); 访问底层 Monolog 实例 Monolog 有多个可用于日志的处理器,如果需要的话,你可以访问 Laravel 使用的底层 Monolog 实例:

4.4K31

2021-07-08总结

laravel 框架中, 服务容器是整个 laravel 的核心,它提供了整个系统功能及服务的配置,调用。...上面提到的 bind 和 make 就是注册 和 取出的 两个动作. 2.门面模式faced 3.php常驻进程死循环 4.php nginx连接方式,9000和socket区别 5.查看进程占用端口号...lsof -i:端口号netstat -tunlp|grep 端口号 6.nginx日志中出现次数最多的ip awk 7.composer 引入第三方包 在composer.json 文件的autoload...服务器返回此响应(对 GET 或 HEAD 请求的响应),会自动将请求者转到新位置。 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。...501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法可能会返回此代码。 502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

1.9K20

Laraval IDE 自动补全插件 laravel-ide-helper

一、背景 我们在实际的开发场景中,不少人或许已经碰到了使用PHPStorm不能自动补全门面(Facade)的问题,或者其他类通过容器调用时无法补全或者跳转。...当然如果你不想手动生成这个文件,也可以使用预生成的文件并把它们放到项目根目录下(这些文件就没有那么实时了),但是不推荐这种方式,因为我们的目的就是为了好用!!!...有些类需要数据库连接,如果没有相应的数据库连接,某些门面可能无法包含进来。 你可以选择要包含的辅助函数文件,默认该选项并未开启,但是你可以通过--helpers选项覆盖默认配置。...post-root-package-install 在 create-project 命令期间,包安装完成后触发。...如果你需要在执行 install 或 update 命令前使用脚本,请确保它们已被定义在包中。

3.4K40

Laravel框架的核心架构,你懂多少?

使用过larave框架的朋友都知道laravel框架里面除了提供一些基本的功能(如控制器、视图、模型)之外,还有中间件、门面、契约等,这些东西是如何在laravel框架运用起来的呢?...门面 门面再一次展示了Laravel在设计上的优秀,它让Laravel变得更加灵活易扩展,那么它的概念是: 1 为开发者提供服务容器中服务的静态代理 2 它对服务访问方式做了补充,之前使用服务必须获取服务的实例...对于我们的用户(最上面的用户)想使用laravel框架,必须通过控制器来使用(上面的Controller),使用laravel框架主要是使用laravel里面的服务提供者(上面的 new 服务),这样就是最传统的开发模式...于是laravel里面就出现了门面门面的出现方便我们优雅的调用服务器提供者的类。...事件:laravel里面的模型里面的事件,比如用户对数据库操作做的一个监听。对整个项目运行进行监听,有监听的动作。类似tp5里面的钩子和行为。 中间件:做用户的请求做一定的过滤。

2.8K20

Laravel框架的核心架构,你懂多少?

使用过larave框架的朋友都知道laravel框架里面除了提供一些基本的功能(如控制器、视图、模型)之外,还有中间件、门面、契约等,这些东西是如何在laravel框架运用起来的呢?...门面 门面再一次展示了Laravel在设计上的优秀,它让Laravel变得更加灵活易扩展,那么它的概念是: 1 为开发者提供服务容器中服务的静态代理 2 它对服务访问方式做了补充,之前使用服务必须获取服务的实例...对于我们的用户(最上面的用户)想使用laravel框架,必须通过控制器来使用(上面的Controller),使用laravel框架主要是使用laravel里面的服务提供者(上面的 new 服务),这样就是最传统的开发模式...于是laravel里面就出现了门面门面的出现方便我们优雅的调用服务器提供者的类。...事件:laravel里面的模型里面的事件,比如用户对数据库操作做的一个监听。对整个项目运行进行监听,有监听的动作。类似tp5里面的钩子和行为。 中间件:做用户的请求做一定的过滤。

2.9K10

Laravel 8 正式发布,一起来看看有哪些新特性吧

该功能可以有效降低迁移文件的数量,并且在测试提升性能。 优化访问频率 Laravel 8 优化了之前已经存在的访问频率限制功能 —— 支持向后兼容 throttle 中间件,并且提供了更高的灵活性。...Laravel 8 引入了一个可以通过门面定义的访问频率限制器: use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Support\Facades...时间测试辅助函数 在 Laravel 中,一直都可以通过 PHP Carbon 库完全控制时间的修改,Laravel 8 则在此基础上往前更进一步 —— 在测试使用一个更加方便的辅助函数来操作时间:...$this->travelBack(); 使用这些方法,时间会在每个测试之间重置。...:component="$componentName" class="mt-4" /> 更多新特性 以上只是从 Laravel 8 中提取的一些比较重要的新特性进行介绍,完整的新特性列表可以参考官方的版本发布日志和升级指南

2.6K30

基于 Redis + 资源库模式实现 Laravel 应用缓存功能

Laravel 提供了封装 Redis 存储器的独立缓存组件,不过这里为了方便大家了解底层实现原理,我们先使用原生的 Redis 实现对文章详情数据和排行榜数据的缓存。...你可以到 Redis 命令行客户端去查看对应的缓存数据: 使用 Laravel 自带的缓存组件 当然,在 Laravel 项目中,如果使用 Redis 作为缓存存储器的话,推荐使用自带的缓存组件,在配置好...CacheServiceProvider 中,会通过 CacheManager 来管理所有缓存存储器: Cache 门面代理的就是这个对象实例,当我们在项目代码中基于 Cache 门面存取缓存项,实际上调用的是...,调用该方法,如果缓存项存在,则基于底层缓存存储器的 get 方法返回对应值,否则的话,通过回调函数参数和过期时间设置缓存项并将其返回。..._cache'), 默认值是 laravel_cache,所以即便 Cache 门面和 Redis 门面设置的缓存键同名,由于前缀不同,所以对应着不同的字符串键值对。

2.5K10

Laravel系列4.7】连接redis以及缓存应用

在配置中有一个 default 和一个 cache 的配置,这个 cache 配置实际上是如果我们将 Laravel 默认的缓存目标设置为 Redis 的话,就会走这个配置,它会默认使用 Redis 的...Redis 门面对象的 connection() 连接方法获得连接对象,然后调用 client() 方法获得连接客户端对象,到这一步,其实获取到的就是我们正常手写 Redis 扩展的那个对象。...首先通过门面 Redis 对象,找到它的服务提供者也就是 laravel/framework/src/Illuminate/Redis/RedisManager.php 。...在 /cache/redis/get 里面,我们通过 Cache 门面类可以方便地取得缓存的数据。这时,我们再测试去使用 Redis 的门面类获取缓存数据,会发现这个缓存数据是无法被读取到的。...仔细看配置文件,会发现有一个 prefix 属性,这里是指定 cache 会自动添加的前缀值,默认会加上 laravel_cache 这样一个前缀,于是,保存在 redis 中的键就需要使用 laravel_cache

1.1K30

通过 Laravel 查询构建器实现简单的增删改查操作

使用 DB 门面执行原生 SQL 语句 如果你之前没有使用过任何 PHP 框架,只是对数据库和 SQL 语句有一些初步了解,或者你的 SQL 语句过于复杂,而你又对编写安全的 SQL 语句很有信心,我们可以直接通过...DB 门面提供的方法执行原生的 SQL 语句,DB 门面既可以用于构建查询构建器方法链,也可以用于原生语句的执行。...select * from `users` where `name` = :name', ['name' => $name]); 上面两条语句返回结果一样,此时返回的就是指定查询条件的结果: 如果你要设置多个查询条件...使用查询构建器进行增删改查 接下来,我们开始介绍 Laravel 数据库功能的核心组件 —— 查询构建器(说是核心,是因为 Eloquent 模型的底层也是基于这个查询构建器),日常开发中,我们与数据库的交互基本都是直接或间接通过它来完成的...,无需手动设置参数绑定来规避 SQL 注入攻击,因为 Laravel 底层会帮助我们自动实现参数绑定,所以推荐使用查询构建器进行数据库操作。

4.1K20

Laravel 7.x 使用 keyspace notification 监听不到 Key 过期事件

场景使用:假设有一个订单 30 分钟以后未付款 自动关闭该订单。或者会员到期自动提醒续费等等。...这个在 Laravel 中其实有更好的选择方式 队列,使用延时队列 ProcessPodcast::dispatch($podcast)->delay(now()->addMinutes(30)); 但是我还想到一种方案就是使用...e 驱逐(evict)事件:每当有键因为 maxmemory 政策而被删除发送 A 参数 g$lshzxe 的别名 好了,言归正传,接下来在 Laravel 中,我是新建一个 Command 命令...下图是 Laravel 项目的结果,过一定事件还会出现连接错误: ? 这个问题纠结了挺久。最后解决方案如下: 解决方案 不使用 Laravel 自带的 Redis 门面,改为原生 Redis 。...我猜是 Laravel门面 Illuminate\Support\Facades\Redis ,这个订阅可能需要配合 发布一起使用

1.7K10
领券