Recent Essays

最近随笔

技术 ·

通过网关代理类动态分发客户端的调用方法

针对方案一(通过网关代理类动态分发),客户端如果同样是 TP 项目,由于服务端在 config/swoole.php 中只向官方扩展注册了一个固定的服务标识 gateway,客户端的调用方式也需要做出相应的配合。 以下是客户端对应的具体调用写法,分为快捷调用和优雅的代理类调用(推荐)两种: 写法 A

技术 ·

think-swoole rpc 服务动态绑定

在 think-swoole 官方默认的配置模式中,RPC 服务(如第三步配置的 class 数组)是在服务启动时一次性加载的常驻内存数据。如果需要实现动态绑定(即无需重启 Swoole 进程即可动态新增、删除或修改可调用的 RPC 服务),我们不能将类写死在配置文件里。 在 ThinkPHP6 下

技术 ·

在 Swoole 的 onRequest 事件中挂载 JsonRPC 服务

在 ThinkPHP6 的 think-swoole 框架下,如果我们直接使用 Swoole 的底层事件 onRequest 来挂载并解析标准的 JsonRPC 2.0 协议,通常是因为要兼容非 TP 项目的外部调用(比如通过纯 HTTP POST 请求发送 JSON 数据的第三方客户端)。 下面是

知识库 ·

轻量级开源全文搜索引擎:Manticore Search 入门介绍 - 实践

在现代应用中,搜索功能几乎是不可或缺的一环。无论是电商平台、内容网站还是日志系统,都需要高效的全文检索支持。传统数据库的 LIKE 查询性能有限,而重量级搜索引擎如 Elasticsearch 又可能资源占用过高。那么,有没有一种兼具轻量、高性能、易用性的搜索引擎? 今天我们来介绍一款非常实用的开源

知识库 ·

music-php:全网音乐搜索和下载

music-php 全网音乐搜索和下载 English | 中文 环境要求 PHP >= 5.6 Composer 安装 phar 文件下载安装 在 releases 页面中下载 music-php 或者 music-php.phar 文件。 全局安装 $ composer global requi

知识库 ·

jquery-tagsinput标签插件

插件使用jquery-tagsinput 1.3.6版本。 github地址:https://github.com/xoxco/jQuery-Tags-Input 给需要的 input 增加上 js-tags-input 的 class。在表单中创建一个包含以逗号分隔的标记列表的实际输入。您可以在v

技术 ·

Js 混淆

如果你想在 ThinkPHP6 项目中针对特定的某个 JS 文件(例如存放解密逻辑的 decrypt.js)进行混淆,而不是混淆整个项目的代码,可以参考以下三种方式: 1. 命令行方式(最简单直接) 如果你不想配置复杂的构建环境,直接使用全局命令行工具即可。 安装工具: bash npm insta

技术 ·

Forgot password

namespace app\controller; use app\BaseController; use think\facade\Db; use think\facade\Cache; use think\facade\Mail; // 假设你封装了邮件类 use think\facade\Va

用 JS 模拟 ThinkPHP 的 url()

function url(path, params = {}) { const base = window.BASE_URL || '/'; const query = new URLSearchParams(params).toString(); return base.replace(/\/$/

关联表字段(例如 user_name)直接平铺在主表的数据列表

如果你希望查询出来的关联表字段(例如 user_name)直接平铺在主表的数据列表里,而不是嵌套在关联对象中(即不希望通过 $item['user']['name'] 访问,而是希望通过 $item['user_name'] 访问),在 ThinkPHP 6 中通常有以下三种处理方案: 1. 使用