解决tp5,tp6,fastadmin框架api或者其他模块获取不到语言包问题

 分享下解决了在 api 模块或者其他任意自定义模块 模型获取不到语言包无法转换或者多模块公用一个语言包问题示例 主要默认加载了admin模块下的语言包 在基类或者当前类里面加入即可public function __construct($data = []) { parent::__construct($data); $this->loadlang(mb_strtolower(class_basename(static::class))); } /** * 加载语言文件 * @param string $name */ protected function loadlang($name) { $name = Loader::parseName($name); $name = preg_match("/^([a-zA-Z0-9_\.\/]+)\$/i", $name) ? $name : 'index'; $lang = request()->langset(); $lang = preg_match("/^([a-zA-...

PHP,解决方案 2022-11-09 PM 337次 0条

redis管理key任意分割符层次算法

 简单研究了下市面上Redis管理器key分隔符算法的时间下面分享下.效果 下面展示了其他redis管理器的效果和我们要实现的目标效果常见效果目标实现效果实现算法可以看到上面通过冒号分割符将 key 分割成层级目录方便管理查看.实现步骤scan获取redis指定数量key循环遍历所有key指定转换分割符号 : 或者其他符号为数组判断数组是否有多个只存在一个则直接赋值键存在多个则赋值引用类型到临时变量然后循环赋值键到临时变量 难点在于 & 引用类型的理解实现算法$iterator = null; $all_keys = $redis->scan($iterator, $search, 1000); $keys = []; foreach ($all_keys as $datum) { $key_array = explode(':', $datum); if (count($key_array) > 1) { $keys_temp = &$keys; foreach ($key_array ...

PHP,解决方案 2022-10-28 PM 315次 0条

php中php-fpm fast-cgi cgi 的关系

cgicgi 是一个协议,跟进程无关,比如说 web server (nginx) 接收到一个 php 的网络请求,此时 nginx 需要根据配置文件,去找 php 的解析器,经过简单处理,将请求的一些信息交给 php 解析器,此时就规定了要传那些协议,还有以什么样的格式传输,这个标准就叫做 cgi 协议php 解释是实现了这个协议的 cgi 程序,nginx 将这些内容交给 php 解释器后,读取 php.ini 等初始化环境,然后处理数据,最终转换成符合这个协议的数据流交给 nginx, 最终返回给浏览器fast-cgi fast-cgi 管理 cgi 程序fast-cgi 是一个常驻进程的程序,与 cgi 为每个 web 请求建立一个进程不同的是,fast-cgi 在 web server 启动的时候会同时启动多个 cgi 程序,这样当进来动态页面请求的时候,就可以将数据流交由 fast-cgi 进程管理器,这样做的好处就是 web server 可以处理更多的请求,并且解析 php.ini 这些工作只进行一次,提高响应速度如图所示php-fpm php-fpm 管理 cg...

PHP 2022-10-27 PM 289次 0条

代码参数注释大全

 本文主要记录代码参数注释大全方便参考查看标明作者@author@author 张三 提供给第三方使用的接口@api@api xxxx参数@param @param array 参数名 描述返回值@return@return string待办@todo@todo 这里是待办版本号@version@version 1.0.0文档继承@inheritdoc类属性@property@property array $auth 描述只读属性@property-read@property-read array $auth 描述只写属性@property-write@property-write array $auth 描述常量@const@const APP过期方法@deprecated示例@example标识类是终态, 禁止派生@final指明引用的全局变量@global标识类、方法、属性是静态的@static忽略@ignore限内部使用@internal协议@license@license MIT链接,引用文档等@link@link http://www.xxx...

PHP,其他 2022-09-02 PM 338次 0条

缓存三贱客

无处不在的缓存缓存在计算机系统是无处不在,在CPU层面有L1-L3的Cache,在Linux中有TLB加速虚拟地址和物理地址的转换,在浏览器有本地缓存、手机有本地缓存等。可见,缓存在计算机系统中有非常重要的地位,其主要作用是提高响应速度、减少磁盘访问等。高并发系统中的缓存一句话概括缓存系统在高并发系统中的地位的话就是如果高并发系统是烤羊肉串,那么缓存系统就是那一撮孜然。缓存系统的作用缓存系统在高并发系统的作用很大,在某种程度上可以说没有缓存系统很难支撑高并发场景。基于机械磁盘或SSD的数据库系统,一般来说读写的速度远慢于内存,因此单纯磁盘介质的数据库无法支撑很高的并发,可以简单认为缓存是保护磁盘数据库的重要屏障。对于一些基于LSM的存储引擎数据库来说,随机写改为顺序写速度提升很大,但是随机读仍然是个问题,所以缓存系统是很有必要的如:NessDBleveldbhbase其核心思想的核心就是放弃部分读能力,换取写入的最大化能力。缓存系统访问流程实际场景也是读多写少,看看请求是如何得到响应的,简单看下交互流程:请求到达之后,业务线程首先访问缓存,如果缓存命中则返回如果未命中则继续请求磁...

PHP,解决方案,其他 2022-06-01 PM 591次 0条

使用composer更新引用包404问题2022年3月29号

 就在 2022年3月29号 我们使用 composer 来 require 使用第三方包或更新 composer包 会出现大面积404问题。异常信息 [Composer\Downloader\TransportException] The "https://mirrors.aliyun.com/composer/p/provider-2017%2477f874a1ea778d1061dc0376ee5bb78089142e6d0933b308200c290eb53e7af4.json" f ile could not be downloaded (HTTP/1.1 404 Not Found) 解决composer包404问题 原因是因为composer已经逐渐废弃v1版本,我们只需要将composer升级到v2版本即可解决。composer升级到2.x版本和降级

PHP,解决方案 2022-03-30 AM 975次 0条

最新jetbrains全家桶及phpstorm激活方法支持全系列全版本支持更新永久有效

  继 IDE Eval Reset 失效后,今天我们分享一个最新的jetbrains全家桶及phpstorm激活方法,并且支持全系列,全版本可更新使用并且有效。 我们知道 jetbrains 家的产品用过的都知道非常好用,其中包括 phpstorm , goland , pycharm , webstorm , intellij idea 等等这些都是非常强大及好用的开发工具,但是奈何 jetbrains 系列的工具都是要收费激活的虽然淘宝上有便宜的 学生邮箱 和 破解版 但是这些非常 容易被封 ,博主已经入了两次淘宝的坑了。 博主之前分享的 phpstorm及jetbrains永久免费激活工具插件无限试用使用 奈何对2021年6月份之后的版本已经无效了,插件的开发者已经停止对激活插件的更新了所以说2021年6月份之后的版本就不能再使用了。最新jetbrains全家桶激活方法 原理是我们主要通过代码搜索其他授权服务器进行永久激活激活。方式一 通过censyshttps://search.censys.io/主要用到的代码services.http.response.head...

PHP,软件工具,Golang,前端,解决方案 2022-03-23 AM 15412次 0条

swoole 处理 has already been bound to another coroutine xxx异常

 分享下之前在使用swoole开发项目时遇到的swoole协程问题。swoole 异常信息 P Fatal error: Uncaught Swoole\Error: Socket#37 has already been bound xxxPHP Fatal error: Uncaught Swoole\Error: Socket#37 has already been bound to another coroutine#19895, reading of the same socket in coroutine#19896 at the same time is not allowed in /www/wwwroot/default/vendor/xxx.php:34 Stack trace: xxxxxxxxxx问题分析 从日志看像是同一个Socket链接不能同时存在于不同的协程里面,也就是不能夸协程使用mysql,redis同一条连接对象。问题处理 知道问题就好处理了可以使用swoole channel 实现一个连接池如下:Channelprivate static ...

PHP,解决方案 2022-02-22 PM 1267次 0条

解决使用idea,phpstorm等开发工具git自动变为修改状态

 本文记录解决使用idea,phpstorm等开发工具在windows下提交代码后在linux下同样使用相同工具代码全部变为git修改状态如图。 通过上面的图片我们可以看到标记为修改状态的代码文件什么都没有修改但是因为跨平台出现了git修改状态,经过排查发现是 windows 和 linux 下换行转换的问题。windows下默认idea换行符 windows下默认换行符为 CRLF 格式linux下默认默认idea换行符 windows下换行符为 LF 格式解决跨平台默认idea换行符问题 既然我们找到了问题那么就好解决了我们只需要配置下git拉去或者提交代码时候保持原样或者指定格式即可。提交时转换为 LF 检出时转换为 CRLF (推荐windows)git config --global core.autocrlf true提交时转换为 LF 检出时不转换(推荐unix/mac)git config --global core.autocrlf input提交检出均不转换换行符git config --global core.autocrlf false拒绝提交包含混合换行...

PHP,Linux,解决方案 2022-01-22 AM 1063次 0条

phpstorm配置使用comoposer远程php版本

 在开发环境中我们可以通过 phpstorm 配置使用 comoposer 远程虚拟机的指定版本 php 。配置本地文件和虚拟机文件共享 例如本地 E:\wwwroot = /www/wwwroot使用安装,更新,显示日志 打开compose.json文件这个时候顶部会显示三个可点击文字 install/update/show log 。清理composer缓存 点击 clear Cache 清理 composer 缓存诊断环境 点击 diagnose 诊断 composer 环境模拟更新包 点击 simulate update 模拟更新 composer 包更新composer版本 点击 self-update 更新 composer 版本测试运行composer更新后运行的脚本 配置 composer 静默运行 --no-interaction

PHP,软件工具,Linux 2022-01-04 PM 826次 0条