随笔分类 - php
摘要:背景:pv、uv大家应该了解,不懂得搜索一下就知道了,现在有这么一个需求:统计当天有哪些用户登录了系统,也即:同一个用户,在一天之内第一次登录系统,记为1次,一天之内的后续登录(在登录状态刷新页面)忽略,项目使用的是thinkphp 6,前后端分离架构。 实现方案: 我们知道,php的开发框架,如:
阅读全文
摘要:$arr = array('a', 'b', 'c'); echo "'".implode("','", $arr)."'"; // outputs 'a','b','c' 需要注意的是,implode的第一个参数,加上的双引号,如果是用在sql查询里,会自动加上转义符,即:\' 参考资料: htt
阅读全文
摘要:背景: 有一个数据大盘的需求,统计组织下的所有人员,优化前数据的加载耗时近30秒,第一步优化耗时下降了近10秒,第二步优化耗时下降了3秒,总耗时缩减了一半 最终优化后本机的耗时如下图: 从之前的25秒多,下降到了5秒以内! 上了测试服务器以后的耗时如下图: 优化思路: 一、定位加载耗时慢的代码片段
阅读全文
摘要:背景: 我们习惯上使用 !empty($data['data']['list'] 判断数组$data里有没有key为list的元素,正确判断key是否存在的方式应该使用array_key_exists 为什么不要使用!empty($data['data']['list'],因为当list不存在时,会
阅读全文
摘要:背景: php7.3.4部署在docker里,需要使用的开发框架是thinkphp6.0-dev版本,在使用composer安装依赖的时候,提示需要swoole依赖,于是有了今天的文章。 操作步骤: mkdir test && cd test/ wget https://github.com/swo
阅读全文
摘要:https://www.likecs.com/show-305773892.html
阅读全文
摘要:./configure --prefix=/www/server/php/74 --with-config-file-path=/www/server/php/74/etc --with-fpm-user=www --with-fpm-group=www --with-curl --with-fre
阅读全文
摘要:背景: 因为使用的是laravel 8,下面这个不支持laravel 8 composer require mpociot/laravel-apidoc-generator 改用下面的 composer require --dev knuckleswtf/scribephp artisan vend
阅读全文
摘要:$payload = json_decode(base64_decode('eyJpdiI6IkhqaWNhQmRTY3F3RC9Vc2Z4K3pHU1E9PSIsInZhbHVlIjoib2ZZQWxwRGxjSjBzazY4N29DTm12TjJyeWJOcXB1cUFaQ2psbU4vTlV5
阅读全文
摘要:laravel的辅助函数定义在src/Illuminate/Foundation/helpers.php,值得认真读一读
阅读全文
摘要:vendor/symfony/http-foundation/Response.php
阅读全文
摘要:sanctum的控制属性定义在config/sanctum.php 默认用到的middleware中间件是 'middleware' => [ 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, 'encrypt_co
阅读全文
摘要:背景: 之前的文章介绍了laravel的cookie生成、加密和响应的原理,cookie自身也是需要一些默认属性的,比如:http_only、same_site、domain、lifetime等等,那么,这些属性的控制参数是在哪里设置的呢? 答案是:config/session.php 默认生成的c
阅读全文
摘要:背景: 在之前的文章中,我已经阐述了laravel的cookie产生的过程,那laravel的cookie在响应到客户端之前,又经历了什么呢? laravel的cookie生成以后,在响应到客户端之前,会经过encrypt的过程,encrypt的加密逻辑定义在src/Illuminate/Cooki
阅读全文
摘要:背景: laravel大家都经常用,cookie也都不陌生,但是你真的知道laravel的cookie是怎么产生的吗? 一、cookie是怎么响应到客户端的? cookie通过addCookieToResponse方法添加到Response,这个方法定义在src/Illuminate/Foundat
阅读全文
摘要:背景: laravel的Str::random或许大家都不陌生,Str::random定义在src/Illuminate/Support/Str.php,但是你知道它都有哪些应用场景吗? 先来看看,Str::random的代码逻辑,不要被最外层的while骗了,实际上这个while只会执行一次 pu
阅读全文
摘要:背景: get请求/sanctum/csrf-cookie,常用于登录,代码如下: return this.http.get<any>(this.apiURL + ':' + this.port + '/sanctum/csrf-cookie', { withCredentials: true })
阅读全文
摘要:下面这篇文章对sanctum介绍的比较全面,可以作为参考 https://learnku.com/docs/laravel/8.x/sanctum/9421
阅读全文
摘要:参考资料: https://www.geeksforgeeks.org/new-self-vs-new-static-in-php/
阅读全文