> php-concurrency
Implement 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)
curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/php-concurrency?format=md"PHP Concurrency
Priority: P2 (MEDIUM)
Structure
See implementation examples for directory layout.
Implement 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.
See implementation examples for Fiber cooperative multitasking code.
Configure 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.
See implementation examples for concurrent HTTP requests with Guzzle Pool.
Choose 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
> related_skills --same-repo
> common-store-changelog
Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve
> golang-tooling
Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)
> common-ui-design
Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)
> common-owasp
OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)