原生的 fsockopen 或基于流的 socket 客户端
在 ThinkPHP6 中使用 Swoole 客户端封装 JSON-RPC 客户端,最核心的高效做法是结合 Swoole 的协程 TCP 客户端 (Swoole\Coroutine\Client) 与 PHP 的魔术方法 (__call),从而实现像调用本地方法一样调用远程服务(RPC 代理)。 [
Archive Codex
慢慢回看旧日那些已经写下的片段。
在 ThinkPHP6 中使用 Swoole 客户端封装 JSON-RPC 客户端,最核心的高效做法是结合 Swoole 的协程 TCP 客户端 (Swoole\Coroutine\Client) 与 PHP 的魔术方法 (__call),从而实现像调用本地方法一样调用远程服务(RPC 代理)。 [
在 think-swoole 官方默认的配置模式中,RPC 服务(如第三步配置的 class 数组)是在服务启动时一次性加载的常驻内存数据。如果需要实现动态绑定(即无需重启 Swoole 进程即可动态新增、删除或修改可调用的 RPC 服务),我们不能将类写死在配置文件里。 在 ThinkPHP6 下
在现代应用中,搜索功能几乎是不可或缺的一环。无论是电商平台、内容网站还是日志系统,都需要高效的全文检索支持。传统数据库的 LIKE 查询性能有限,而重量级搜索引擎如 Elasticsearch 又可能资源占用过高。那么,有没有一种兼具轻量、高性能、易用性的搜索引擎? 今天我们来介绍一款非常实用的开源
music-php 全网音乐搜索和下载 English | 中文 环境要求 PHP >= 5.6 Composer 安装 phar 文件下载安装 在 releases 页面中下载 music-php 或者 music-php.phar 文件。 全局安装 $ composer global requi
插件使用jquery-tagsinput 1.3.6版本。 github地址:https://github.com/xoxco/jQuery-Tags-Input 给需要的 input 增加上 js-tags-input 的 class。在表单中创建一个包含以逗号分隔的标记列表的实际输入。您可以在v
如果你想在 ThinkPHP6 项目中针对特定的某个 JS 文件(例如存放解密逻辑的 decrypt.js)进行混淆,而不是混淆整个项目的代码,可以参考以下三种方式: 1. 命令行方式(最简单直接) 如果你不想配置复杂的构建环境,直接使用全局命令行工具即可。 安装工具: bash npm insta
namespace app\controller; use app\BaseController; use think\facade\Db; use think\facade\Cache; use think\facade\Mail; // 假设你封装了邮件类 use think\facade\Va
function url(path, params = {}) { const base = window.BASE_URL || '/'; const query = new URLSearchParams(params).toString(); return base.replace(/\/$/
如果你希望查询出来的关联表字段(例如 user_name)直接平铺在主表的数据列表里,而不是嵌套在关联对象中(即不希望通过 $item['user']['name'] 访问,而是希望通过 $item['user_name'] 访问),在 ThinkPHP 6 中通常有以下三种处理方案: 1. 使用
DropzoneJS是一个提供文件 拖拽 上传并且提供图片预览的开源 类 库. 文档地址 下载 dropzone.js 然后引入CSS和JS `<link type="text/css" rel="stylesheet" href="/css/dropzone.min.css"/> <script