封装一个PHP可控限速下载文件的方法-牛翰网

封装一个PHP可控限速下载文件的方法

说明 实测下载后的文件与源文件哈希值一致,保证数据传输安全一致。 如果下载到的文件每次都165KB左右,和源文件大小不符合,需要用IDE打开下载的文件,看看是否报致命错误,提示超过最大内存限...
11个月前
03914
从安全、开发、产品三个角度反对用refresh_token续期access_token的观点-牛翰网

从安全、开发、产品三个角度反对用refresh_token续期access_token的观点

说明: access_token: 服务端与客户端通信,有时服务端需要知道客户端的身份,就会用到access_token来用于验证身份。 refresh_token: 但为了保证安全token会设置过期时间,如果直接过期,相当...
11个月前
0398
快速理解Laravel容器(IOC、DI、Provider、Contract)-牛翰网

快速理解Laravel容器(IOC、DI、Provider、Contract)

源码理解思维的提升 分享一些个人见解。 Laravel里面的某些概念,就像魔术一样,看起来很厉害,当知道魔术怎么变的,就会认为也不过如此。所以不必感觉Laravel里有些概念难以理解。 应当抛除被...
11个月前
03812
3种策略巧妙化解PHP Trait成员属性冲突-牛翰网

3种策略巧妙化解PHP Trait成员属性冲突

说明 PHP语言本身可以用insteadof和as关键字解决多个trait同名成员方法冲突的问题,但是貌似没有直接解决同名成员属性冲突的方案。 虽然属性名冲突极少发生,但是不代表不会发生。 如果是自定义...
11个月前
0377
深入理解高并发超卖一系列问题与解决方案(近7万字详解,跳槽涨薪必备宝藏珍藏级分享)-牛翰网

深入理解高并发超卖一系列问题与解决方案(近7万字详解,跳槽涨薪必备宝藏珍藏级分享)

破除困境带你飞 能遇上高并发的,基本都是有点规模的公司,小公司基本都是CRUD。 想去一线城市跳槽,想去有高并发的公司,但是没有高并发经验,没有高并发的经验,就去不了高并发的公司,去不了...
11个月前
0376
深入理解PHP+Redis实现分布式锁的相关问题-牛翰网

深入理解PHP+Redis实现分布式锁的相关问题

概念 PHP使用分布式锁,受语言本身的限制,有一些局限性。 通俗理解单机锁问题:自家的锁锁自家的门,只能保证自家的事,管不了别人家不锁门引发的问题,于是有了分布式锁。 分布式锁概念:是针...
11个月前
03510
浅谈PHP框架中类成员方法的类类型形参是怎么利用ReflectionClass反射类自动实例化的(应该是全网首发)-牛翰网

浅谈PHP框架中类成员方法的类类型形参是怎么利用ReflectionClass反射类自动实例化的(应该是全网首发)

说明 1. 或许是全网首发,我翻过很多文章,从未有一个博主讲过这个东西,很多博主只讲了IOC、DI和反射机制的常见用法,因类类型形参反射的巧妙用法有相当高的难度和学习盲区,所以从未有人讲过...
11个月前
03211
可控概率抽奖算法-牛翰网

可控概率抽奖算法

说明 本文PHP语言去实现,只实现核心可控概率引擎,库存判断等其它业务需要其它代码配合实现。 代码 /** * @function 封装可控概率的抽奖功能 * @param $arr array 数据集合 * @param $weight_k...
11个月前
0297
Linux系统下配置Nginx使部分URL使用多套自定义的PHP-FPM配置-牛翰网

Linux系统下配置Nginx使部分URL使用多套自定义的PHP-FPM配置

Nginx修改演示: vim /usr/local/nginx/conf/vhost/example.com server{ listen 80; server_name 192.168.1.180; location / { root /Code/project/public; index ind
11个月前
0287
十几个冷门还好用的PHP写法(冷门的让人震惊)-牛翰网

十几个冷门还好用的PHP写法(冷门的让人震惊)

环境:PHP8.1 1. else foreach/else for //012 if(false) { } else for($i = 0; $i < 3; $i++) { echo $i; } //012 if(false) { } else foreach([0, 1, 2] as $v
11个月前
0285