
PHP
文章平均质量分 88
Hello,PHPer
码农兴哥
纸上得来终觉浅,绝知此事要躬行。
展开
-
macbook M1芯片(arm64架构)安装php的kafka扩展出错的解决方案
macbook M1芯片(arm64架构)安装php的kafka扩展出错的解决方案。M1芯片默认使用的arm64架构,在终端中执行命令 `arch -x86_64 zsh` 来切换架构,接下来,再重新安装 x86 的`brew、kafka、librdkafka、php-rdkafka` 就可以了。原创 2024-12-03 17:32:45 · 466 阅读 · 0 评论 -
Ubuntu搭建PHP开发环境操作步骤(保姆级教程)
最近自购了一个阿里云服务器,系统镜像为Ubuntu 22.04 ,在编译安装LNMP(nginx+php+mysql)环境的时候,踩了不少坑,因此决定把自己安装的过程记录下来,以备后用。本篇文章基本上属于保姆级别的教程,只要你的系统也是Ubuntu,基本上无脑式复制粘贴运行,就能搭建起LNMP的环境。原创 2024-11-21 10:06:41 · 1903 阅读 · 0 评论 -
thinkphp6中数据库的操作和增删改查导出Excel示例
thinkphp6中数据库的操作和增删改查导出Excel示例:直接导出的逻辑,先对数据列表的字段和表头设定,可以支持二维结构的解析;如果条件允许,还可以对生成的文件上传到OSS后,返回OSS的URL。如果需要导出数据表中的用户头像文件,和表格一起导出,可以对文件下载后生成压缩包。这里需要考虑到一个情况,如果导出的数据耗费的时间特别长(比如导出的数据量特别多,或者需要导出附件的时候),那么应该考虑通过消息队列异步导出。原创 2024-11-14 17:44:52 · 1103 阅读 · 0 评论 -
thinkphp6的项目结构配置和常用功能封装以及消息队列的用法
thinkphp6的项目结构配置和常用功能封装以及消息队列的用法。使用多应用模式,可以在一个项目中部署类似 admin、web、api 等多个应用;thinkphp 默认使用单应用模式部署,如果要使用多应用模式,需要安装多应用模式扩展think-multi-app。在 app/command目录下编写命令行脚本的逻辑,比如定时任务,或者比较耗时的执行脚本。thinkphp6 内置了一个消息队列服务 thinkphp-queue,它支持消息队列的一些基本特性:消息的发布,获取,执行,删除,重发,失败处理等。原创 2024-11-12 11:45:02 · 527 阅读 · 0 评论 -
PHP实现一个简单的接口签名方法以及思路分析
PHP实现一个简单的接口签名方法以及思路分析。B项目需要调用A项目的接口,由A项目为B项目分配 `AccessKey` 和 `SecretKey`,用于接口加密,确保不易被穷举,生成算法不易被猜测。最终需要确保包含签名的参数只能被有效的请求一次,重复请求则视为无效参数;并且设定参数有效时长(例如5分钟),超时则视为无效参数。原创 2024-06-06 16:22:28 · 914 阅读 · 1 评论 -
群晖NAS安装web服务器和搭建PHP环境
最近折腾了一台群晖NAS,并搭建了一套web服务器,关于其中的一些设置,和传统的Linux的配置还不太一样,因此记录下来。原创 2024-05-26 23:26:32 · 7557 阅读 · 0 评论 -
phpspreadsheet导出Excel报错问题汇总
PHP导出Excel出现的问题汇总和解决方案,phpspreadsheet实现导出Excel的方法封装原创 2024-03-27 18:52:57 · 843 阅读 · 0 评论 -
PHP底层原理和细节分析
php FastCGI Process Manager,是一个 PHP 进程管理器,包含 master 进程和 worker 进程两种进程:master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个 (具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的进程。原创 2023-05-05 12:30:00 · 504 阅读 · 0 评论 -
在PHP中使用Elasticsearch
Ealsticsearch只是提供各种api,如果想直观的管理api,可以使用 elasticsearch-head 客户端工具。中的ThinkPHP6框架演示,给 config/common.php 中添加如下内容。修改ES的配置文件支持跨域,否则elasticsearch-head无法连接。然后查看 elasticsearch-head 中就有了刚才设定的demo-1。Kibana是ES的一个配套工具,可以让用户在网页中与ES进行交互。然后启动服务:php think run -p8087。原创 2023-05-04 22:00:59 · 333 阅读 · 0 评论 -
Swoft中使用Consul微服务
在 Swoft 框架中使用 swoft-consul 组件,实现服务注册。限流的目的是对并发访问和并发请求进行限速,或者一个时间窗口内请求进行限速从而来保护系统,一旦达到或超过限制速率就可以拒绝服务,或者进行排队等待等。常见的限流算法有:计数器、漏桶、令牌桶等,Swoft 限流器底层采用的就是令牌桶算法,底层依赖于 Redis 实现分布式限流。原创 2023-05-04 13:19:46 · 1227 阅读 · 2 评论 -
Swoft的注解分析和实现一个RPC服务
Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。原创 2023-05-04 09:43:26 · 453 阅读 · 0 评论 -
Swoole中的协程和子进程
进程:是一个"执行中的程序”,进程的三态模型: 运行、就绪、堵塞。线程:是进程中的一个实体,是被操作系统独立调度和分派的基本单位。线程是由操作系统控制的。协程:是一种用户态的轻量级线程,协程的调度由用户控制。一个线程可以拥有多个协程,一个进程也可以单独拥有多个协程。Swoole中的五种进程:Master 进程、Reactor 线程、Worker 进程、TaskWorker 进程、Manager 进程原创 2023-05-04 00:02:27 · 1296 阅读 · 0 评论 -
PHP Swoole的基本用法
Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。Swoole4 协程的成熟将 PHP 带入了前所未有的时期, 为性能的提升提供了独一无二的可能性。当有新的 HTTP 请求进入就会触发此事件。事件回调函数有 2 个参数,一个是 $request 对象,包含了请求的相关信息,如 GET/POST 请求的数据。UDP 是无连接的、不可靠的、支持一对一、一对多、多对一、多对多的通信模式。原创 2023-05-03 16:41:02 · 4265 阅读 · 0 评论