tourze/yield-breakable-caller
最新稳定版本:0.0.2
Composer 安装命令:
composer require tourze/yield-breakable-caller
包简介
BreakableCaller, using Yield
README 文档
README
A lightweight PHP library for breakable step-by-step task execution using Generators (yield). Allows interruption of task flow at any step based on custom conditions.
Features
- Step-by-step task execution based on PHP Generator (yield)
- Interrupt task flow at any step by custom logic
- Simple, dependency-free implementation
- Suitable for scenarios requiring controllable breakpoints in process
Installation
- Requires PHP >= 8.1
- Install via Composer:
composer require tourze/yield-breakable-caller
Quick Start
use Tourze\YieldBreakableCaller\BreakableCaller; $caller = new BreakableCaller(); $task = function () { echo "Step 1 executing\n"; yield; echo "Step 2 executing\n"; yield; echo "Step 3 executing\n"; yield; echo "Step 4 executing\n"; }; $shouldContinue = function () { static $count = 0; $count++; return $count < 3; // Interrupt after 3rd step }; $caller->invoke($task, $shouldContinue);
Output:
Step 1 executing
Step 2 executing
Step 3 executing
Documentation
Core API
BreakableCaller::invoke(callable $callback, callable $shouldNext): void
$callback: A function returning a generator$shouldNext: A callback to determine whether to continue after each step
Behavior
- After each
yield,$shouldNextis evaluated. If it returnsfalse, all subsequent steps are interrupted. - Supports empty generators, single-yield generators, and will throw if callback does not return a generator.
Contributing
We welcome contributions to improve this library. Please follow these guidelines:
- Submit issues for bugs or feature requests
- Follow PSR coding standards
- Write tests for new features
- Update documentation when needed
Development
- Clone the repository
- Install dependencies:
composer install - Run tests:
composer testorvendor/bin/phpunit - Run static analysis:
composer phpstanorvendor/bin/phpstan analyse
License
This library is licensed under the MIT License. See the LICENSE file for details.
Changelog
See CHANGELOG.md for version history and updates (if available).
统计信息
- 总下载量: 221
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-27