amphp

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 AMPHP 框架编写非阻塞异步 PHP 代码,依赖 revolt/event-loop、amphp/amp ^3 及完整 amphp/* 生态(http‑server、http‑client 等)。

AMPHP v3 技能

功能概述

AMPHP v3 技能是一项面向实际任务的技能,主要用于Version;此技能只覆盖 AMPHP v3 —— ampp/amp ^3, 起义/ event- loop ^1, PHP 8. 1+. 如果您看到 v2 模式( 生成 $promise, AmpLoop: run(), promise, Corotine ) , 处理。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

AMPHP v3 技能规范

版本说明

本技能仅覆盖 AMPHP v3 —— 即 amphp/amp ^3、revolt/event-loop ^1,要求 PHP 8.1+。

若见到 v2 风格的写法(如 yield $promise、AmpLoop::run()、Promise、Coroutine),一律视为错误,须改用 v3 对应的等效实现。完整的迁移对照表请参阅 docs/v2-v3.md。

不可协商的强制规则

以下规则适用于你在 AMPHP 项目中编写或修改的每一个文件:

  • 每个 PHP 文件顶部必须声明 declare(strict_types=1)。
  • 每次调用 json_encode / json_decode 时,必须传入 JSON_THROW_ON_ERROR 标志。
  • 禁止在事件循环内使用阻塞式 I/O(如 file_get_contents、PDO、curl_exec、sleep)—— 应改用 amphp/file、amphp/mysql、amphp/http-client、Ampdelay() 等提供的异步替代方案。
  • 获取的互斥锁(mutex)或信号量(semaphore)必须在 finally 块中释放;否则异常会跳过清理逻辑。
  • HTTP 响应体必须始终调用 buffer() 或完整迭代读取完毕——未读取的响应体会导致连接无法复用。

关于 19+ 个已文档化的典型陷阱(如缓冲区死锁、Channel EOF 行为、箭头函数变量捕获、Redis 工厂模式 vs 构造函数调用等),请在编写任何异步代码前通读 docs/common-mistakes.md。

参考文件

仅按需加载与当前任务相关的文件,切勿一次性加载全部文件。

文档

文件 适用场景
docs/constructors.md 实例化任意 AMPHP 类时 —— 经验证的构造函数签名、参数名、默认值及工厂方法
docs/namespaces.md 编写 use 导入语句时 —— 所有类、函数与枚举的完整命名空间路径
docs/packages.md 新建项目或引入新依赖时 —— composer require 命令及各包功能概览
docs/common-mistakes.md 编写任何异步代码前 —— 19+ 个真实 Bug 案例,含错误写法与正确写法对比
docs/v2-v3.md 从 AMPHP v2 迁移,或遇到含 yield/Promise/Coroutine 的旧代码时

示例

文件 适用场景
examples/core-async.md EventLoop 启动、async()、delay()、Future 组合器(await、awaitAll、awaitAny)、DeferredFuture
examples/cancellation.md TimeoutCancellation、DeferredCancellation、CompositeCancellation、取消传播机制
examples/sync.md LocalMutex、LocalSemaphore、LocalParcel、Barrier、LocalKeyedMutex、RateLimitingSemaphore、synchronized()
examples/http-server.md 最小化 HTTP 服务器、带路由参数的 Router、中间件栈、TLS、Session、静态文件服务、代理配置
examples/http-client.md GET/POST 请求、并行请求、ConnectionLimitingPool、拦截器(interceptor)、代理、响应体流式读取
examples/websocket.md Echo 服务器、仅推送模式(drain 模式)、广播网关、WebSocket 客户端、二进制消息流式传输
examples/byte-stream.md ReadableBuffer、pipe()、GZIP 压缩/解压缩、Base64 编码/解码、splitLines()
examples/pipelines.md Queue 的背压控制、Pipeline 操作符(map、filter、tap)、concurrent()、merge()、concat()
examples/parallel.md Task 接口、基于工作池的扇出(fan-out)、IPC Channel 进度上报、ChannelException 处理
examples/database.md MySQL 连接池、事务、预处理语句;Redis 的 get/set/hash/pubsub/cache 操作
examples/file-io.md File::read/write/exists/getSize/openFile/listFiles/deleteDirectory/createDirectoryRecursively
examples/cache.md LocalCache(LRU + TTL)、AtomicCache(compute-if-absent)、PrefixCache、NullCache
examples/interval.md Interval 重复定时器、enable/disable 控制、weakClosure() 防止 GC 循环引用、EventLoop::delay/repeat/cancel
examples/testing.md AsyncTestCase、构建模拟 Request 对象、LeagueUriHttp::new()、phpunit CLI 参数

工作流

文件 适用场景
workflows/http-server-full.md 从零构建完整 HTTP 服务器:Router + 中间件 + 静态文件 + WebSocket + 优雅关闭
workflows/parallel-fan-out.md CPU 密集型任务分发至多个工作进程,通过 IPC 上报执行进度
workflows/tcp-server.md 原生 TCP 服务器:Echo 服务、自定义二进制协议、TLS 双向认证、优雅关闭

模板

文件 适用场景
templates/http-server.php 开箱即用的完整 HTTP 服务器样板(含 Router + 中间件 + 静态文件 + 优雅关闭)
templates/websocket-handler.php WebSocket 处理器样板:Echo、仅推送、广播网关
templates/parallel-task.php 带 IPC 进度上报与扇出编排能力的工作进程 Task 类样板

脚本

文件 用法
scripts/server-demo.php php scripts/server-demo.php [--port=N] — 启动一个最小 HTTP 服务器以验证环境配置
scripts/http-client-demo.php php scripts/http-client-demo.php [url] — 演示 GET 请求、并行请求、ConnectionLimitingPool 使用

资源

文件 适用场景
resources/blocking-vs-async.md 速查表:将常见阻塞式 PHP 函数一一映射至其 AMPHP v3 异步替代方案

遗留内容

文件 内容说明
references/advanced-patterns.md 深度解析:Fiber 模型底层机制、所有 Future 组合器、Queue 背压原理、Pipeline 并发模型、取消语义、EventLoop 定时器细节
references/class-examples.md 按包组织的关键 AMPHP 类的最小使用示例,每类一个

相关专题

更多
phpEnv 多版本 PHP 切换与管理
phpEnv 多版本 PHP 切换与管理

系统讲解 phpEnv 的多版本 PHP 管理能力,涵盖 PHP 5.6、7.4、8.0、8.1、8.2、8.3 等多版本的下载安装与共存配置、不同站点绑定不同 PHP 版本的方法、php.ini 常用参数(内存限制/上传大小/时区/错误显示)的独立调整、PHP 扩展(Redis/Swoole/Xdebug/imagick)的安装与启用,帮助开发者灵活应对多项目多版本的开发需求。

2026.04.22

130

17

Composer 在主流 PHP 框架中的应用实践
Composer 在主流 PHP 框架中的应用实践

结合 Laravel、ThinkPHP、Symfony 等主流 PHP 框架的实际场景,讲解 Composer 在框架项目中的典型应用,包括通过 create-project 初始化框架项目、安装与管理第三方扩展包、scripts 钩子(post-install/post-update)自动执行部署任务、自定义 Installer 插件开发、多项目共享 vendor 依赖的 Monorepo 工作流管理,帮助开发者在真实框架项目中充分发

2026.04.13

243

14

PHPstorm编辑器全系统安装与激活配置指南
PHPstorm编辑器全系统安装与激活配置指南

本文提供一份详尽的PHPstorm全系统安装与激活配置指南,覆盖Windows、macOS及Linux三大主流平台。内容从官方安装包的获取、安装过程中的路径与组件选择,到激活流程(包括正版激活与补丁替换法)均有详细图解。此外,指南还包含安装后的基础环境配置与中文语言包安装,旨在帮助开发者快速完成IDE部署,为PHP开发搭建一个稳定、高效的集成环境。

2026.04.01

176

9

从环境搭建到代码调试:PHPstorm全流程开发配置指南
从环境搭建到代码调试:PHPstorm全流程开发配置指南

本文旨在为PHP开发者提供一份详尽的PhpStorm全流程开发配置指南。内容涵盖从IDE安装、PHP解释器配置、Xdebug调试环境搭建,到项目运行与断点调试的完整流程。通过本指南,读者将掌握搭建高效开发环境的核心技能,快速上手PhpStorm的强大功能,显著提升PHP开发效率。

2026.04.01

41

11

PHP源码开发选择推荐
PHP源码开发选择推荐

本专题整合了PHP源码开发相关教程,阅读专题下面的文章了解更多详细内容。

2026.03.31

786

15

php foreach循环使用教程合集
php foreach循环使用教程合集

本专题整合了php foreach循环相关教程,阅读专题下面的文章了解更多详细操作。

2026.03.27

291

31

宝塔面板PHP环境配置与多版本切换实践
宝塔面板PHP环境配置与多版本切换实践

本专题讲解宝塔中 PHP 环境的配置方法,包括版本切换、扩展安装、运行参数优化及错误日志分析,适用于多项目运行场景。

2026.03.25

206

25

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

2026.03.04

1236

29

新手如何学习php
新手如何学习php

本合集专为零基础新手打造,涵盖PHP入门基础、环境搭建、语法详解及实战项目等免费教程,助你系统掌握PHP编程。阅读专题下面的文章了解更多详细内容。

2026.02.27

622

34

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习