Php concurrency
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/php-concurrency
Handling concurrency and non-blocking I/O in modern PHP. Use when implementing concurrent requests, async processing, or non-blocking I/O in PHP. (triggers: **/*.php, Fiber, suspend, resume, non-blocking, async)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill php-concurrencyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.8 KB, 396 tokens by cl100k_base, as published. Nobody here has run it
PHP Concurrency
Priority: P2 (MEDIUM)
Structure
src/
└── Async/
├── Schedulers/
└── Clients/
Implementation Guidelines
PHP Fibers (8.1+)
- Multitasking: Use
new Fiber()for low-level cooperative multitasking. - Yielding Control: Use
Fiber::suspend('paused')to yield execution back to the caller. - Resuming: Call
$fiber->resume('hello')to continue execution. Catch exceptions via$fiber->getReturn(). - Isolation: Use separate PDO connections per Fiber to avoid shared mutable state.
Non-blocking I/O & Event Loops
- Loop Setup: Use ReactPHP or Amp. Call
Loop::get()to access the event loop. - HTTP Clients: Use
react/httpor the GuzzlePool($client, ...)for concurrent requests. - I/O Safety: Never use blocking
file_get_contentsorsleep()inside a Fiber or EventLoop. - Entry Point: Run
Loop::run()at your application entry point to start the async loop.
Concurrency Strategies
- Queued Jobs: For heavy concurrency, prefer Laravel Horizon or Symfony Messenger over raw PHP Fibers.
- Self-Contained Logic: Ensure Fibers manage their own state and exceptions to prevent cross-contamination.
Anti-Patterns
- No deeply nested Fiber suspends: Keep Fiber logic traceable.
- No blocking I/O inside Fibers: Use async-compatible libraries.
- No custom scheduler code: Use Amp or ReactPHP instead.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.