flyokai/amp-mate
Composer 安装命令:
composer require flyokai/amp-mate
包简介
AMPHP helpers
README 文档
README
User docs →
README.md· Agent quick-ref →CLAUDE.md· Agent deep dive →AGENTS.md
AMPHP filesystem helpers — safe wrappers, async file locking, and a bridge between AMPHP
Fileobjects and PHP resource handles.
Features
- Safe / non-throwing variants of common filesystem operations
ampFlock()with exponential-backoff retry, cancellation-awarefindAmpFileHandle()— extracts the underlyingresourcefrom any AMPHPFiledriver- All functions auto-loaded via Composer
Installation
composer require flyokai/amp-mate
Functions
All live in src/functions/filesystem.php:
| Function | Returns | Notes |
|---|---|---|
findAmpFileHandle(File) |
resource|false |
Works with StatusCachingFile, UvFile, EioFile, BlockingFile |
ampFlock($handle, int $op, ?Cancellation, float $baseLatency = 0.01, int $maxAttempts = 10) |
bool (throws TimeoutException on exhaust) |
Exponential backoff |
ampOpenFile(string $path, string $mode) |
File|false |
Safe open |
ampUnlink($file, bool $safe = true) |
bool |
|
ampFileExists(string $path) |
bool |
isFile && exists |
ampDirExists(string $path) |
bool |
isDirectory && exists |
ampMkdir(string $path, int $mode = 0755, bool $safe = true) |
bool |
|
ampChmod(string $path, int $mode, bool $safe = true) |
bool |
Quick start
use Amp\File; use function Flyokai\AmpMate\{ampOpenFile, ampFlock, findAmpFileHandle}; $file = ampOpenFile('/tmp/lock.txt', 'c+'); if ($file === false) { throw new RuntimeException('cannot open'); } $handle = findAmpFileHandle($file); ampFlock($handle, LOCK_EX); // suspends with backoff until acquired $file->write('hello'); flock($handle, LOCK_UN); $file->close();
The safe pattern
Every operation that can fail accepts a $safe boolean:
$safe = true(default) — returnfalse/boolon failure$safe = false— throw the underlying exception
ampMkdir('/tmp/foo', 0755); // returns false on collision ampMkdir('/tmp/foo', 0755, false); // throws on collision
Gotchas
ampFlock()usesAmp\delay()between attempts — cooperative, but ifflockitself blocks the OS it still blocks.- Default
$maxAttempts = 10with exponential backoff can take up to ~10 seconds before throwing. findAmpFileHandle()returnsfalsesilently for unsupported driver types.
See also
flyokai/magento-amp-mate— async cache backend built on top of these helpers
License
MIT
flyokai/amp-mate 适用场景与选型建议
flyokai/amp-mate 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 12 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 flyokai/amp-mate 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 flyokai/amp-mate 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 18
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-04