- 博客(467)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 laravel(源码阅读):kernel过程和console调度artisan命令
PHP是通过全局变量$_SERVER[‘argv’]来接收所有的命令行输入的。artisan工具:执行计划任务、异步队列,通过Console内核来实现。使用相关:通过artisan命令、计划任务、队列启动框架进行处理的。
2024-03-28 11:53:49 101
原创 laravel(源码笔记) request-response 执行过程
requestcaptureSymfonyRequest::createFromGlobals()createRequestFromFactory如果是form提交的方式,则创建Symfony Package里提供的 ParameterBag对象包,处理请求。createFromBaseduplicate 克隆请求,并重设一些属性responserunRouteprepareResponsetoResponse可响应,直接响应Psr规范响应json格式
2024-03-27 11:39:41 198
原创 phpstorm配置和快捷键
设置自动换行:Use Soft Wraps in Editor 、Show whitespace。鼠标滚动缩放页面:Mouse wheel。
2024-03-24 22:29:13 96
原创 php闭包应用
laravel 路由 bingTo 把路由URL映射到匿名回调函数上,框架会把匿名回调函数绑定到应用对象上,这样在匿名函数中就可以使用$this关键字引用重要的应用对象。Illuminate\Support\Traits\Macroable的__call方法。
2024-03-19 14:55:15 240
原创 php Zend Opcache 配置
字节码缓存能存储预先编译好的PHP字节码,这样,下次请求PHP脚本时,PHP解释器不用每次读取、解析和编译PHP代码直接从内存中读取预先编译好的字节码,节省时间,提升性能。validate_timestamps注意,生产中要配置为0,表示开启缓存。
2024-03-19 14:44:09 194
原创 promise的多个then的事件循环顺序
他这里两个then,就是说,不会一次一起执行then,把then里面的东西放入微任务。而是把一个then当作一轮循环来执行了。
2024-03-12 15:14:16 370
原创 原生php单元测试示例
测试例子参考:https://docs.phpunit.de/en/11.0/writing-tests-for-phpunit.html#asserting-return-values。附上tp框架集成测试框架实现:https://blog.csdn.net/agonie201218/article/details/103364576。参考:https://phpstorm.github.net.cn/using-phpunit-framework.html。选择测试的目录,勾选测试的方法。
2024-03-11 16:26:46 546 1
原创 mysql 过滤重复数据以及删除表中的重复数据保留一条数据的方法
从前面查询重复的数据,加上排除最小的数据,就是我们要删除的多余的重复的数据。
2024-02-28 12:09:49 470 1
原创 laravel distinct查询问题,laravel子查询写法
直接调用后,count查询会和实际查询的数据对不上,count还是查询全部数据,而实际的列表是去重的。给distinct加上参数,比如去重的值的id,就加id。
2024-02-06 12:08:08 778
原创 dockerfile报错:failed to solve: process
【代码】dockerfile报错:failed to solve: process。
2024-01-29 17:17:49 931
原创 phpstorm: Failed to transfer file could not close the output stream for file
b:我为了学扩容容易吗。
2024-01-26 17:39:02 394
原创 mysql 多版本并发控制mvcc
InnoDB通过为每个事务在启动时分配一个事务ID来实现MVCC。当不同的会话(事务B)读取聚簇主键索引记录时,InnoDB会将该记录的事务ID与该会话的读取视。Undo记录,并且事务的回滚指针指向该Undo日志记录。在该事务中修改记录时,将向Undo日志写入一条说明如何恢复该更改的。如果当前状态下的记录不应可见(更改它的事务尚未提交),那么Undo日。志记录将被跟踪并应用,直到会话达到一个符合可见条件的事务ID。循环到完全删除这一行的Undo记录,然后向读取视图发出这一行不存在的信号。
2024-01-25 18:53:22 531
原创 thinkphp6 模糊查找json下的字段值
where(‘‘json的字段->json下的字段, ‘like’, ‘%’. keyword .’%’)where(''json的字段->json下的字段)
2024-01-19 18:32:42 640
原创 docker安装marcocesarato/php-conventional-changelog报错
在小皮环境没问题,在docker+swoole环境下报错。
2024-01-19 18:27:08 568
原创 laravel api资源的问题记录
层次嵌套很多,而且很深,这样虽然开发方便了,但是维护就困难了,除了需要理清楚各层的关系,在toArray里面使用sql查询的时候,还会导致n+1的问题。resource 转换层 可以帮助我们转换一些字段的结果,类似前端的filter。可以使用比如对象或者模型的形式来处理,但使用sql查询会导致n+1的问题。这些逻辑最好是抽离出来处理,使用with来优化。
2023-12-27 11:02:52 440
原创 laravel 懒加载和预加载,n+1问题,with。
多条查询会更慢,查询时间是加上每次链接和断开的,这会导致查询n+1的问题,laravel里面使用with来解决这个问题。
2023-12-27 10:44:13 388
原创 sql 随机排序优化
是将最大的id查出来,然后使用程序来随机id,从而使用in来查询,最后使用判断来兜底看看结果条数符不符合需要的随机总数要求,不过就递归处理。这样在数据小的情况小是ok的。但如果是要一次查询200-2000条,就不好了。总结:最好的处理方式是,随机多个存在的id,然后一次性in来查询。但这条语句有个问题,他的id是排序的,因为使用了。laravel语句生成的原生写法。上面会导致order by的产生。此方式可以去除order by。这种也是一次查询一条。
2023-12-27 10:39:58 514
原创 sql null的坑和优化
类型的语句,导致索引失效。网上查看了一些null的缺陷,摘抄记录一下。最近优化接口api,查看了sql语句来优化,看到很多语句都是带着。
2023-12-27 10:29:20 358
原创 laravel 安装新插件 topthink/think-migration
(本地无相关环境,比如swoole,无法执行命令。),执行插件更新和使用命令执行相关的artisan命令。比如安装插件 topthink/think-migration。环境:本地虚拟机,跑docker容器,项目文件挂载到本地。切换到对应的项目目录下,安装插件。执行生成sql文件记录。撤销提交的文件,回滚。
2023-12-21 14:04:38 435
原创 virtualbox操作记录
切换到window,右边的ctrl提示自动独占键盘,去除:菜单-》管理-》全局设定-》热键-》最下面自动独占键盘去掉勾选。调整大小:视图-》最下面虚拟显示屏1-》选择缩放到300%
2023-12-14 14:56:43 363
原创 虚拟机 换wifi后重置ip
dhclient -r // 清除ip。ifconfig //重新获取。dhclient // 重置。换wifi后重置ip。
2023-12-14 14:53:29 332
setTimeout属于js隐藏的策略模式吗
2021-11-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人