switon / pool
Owner-scoped object pools with guard-based borrow and return for Switon Framework
v1.0.0
2026-06-06 13:43 UTC
Requires
- php: >=8.3
- psr/event-dispatcher: ^1.0
- switon/core: ^1.0
- switon/event: ^1.0
- switon/sync: ^1.0
Requires (Dev)
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.0
- switon/testing: ^1.0
README
Switon's resource pool manager for pooling resources by owner and type, guard-based auto-return, and pool lifecycle events.
Highlights
- Owner-scoped pools: each owner gets its own pool space.
- Multiple pool types: one owner can keep separate variants such as
defaultandreadonly. - Scoped borrowing:
PoolGuardreturns resources automatically when it goes out of scope. - Capacity control: pool size, timeout, and busy conditions are handled explicitly.
- Observable lifecycle: resource acquiring, returning, and busy states can be observed.
Installation
composer require switon/pool
Quick Start
use Switon\Core\Attribute\Autowired; use Switon\Pooling\PoolManagerInterface; final class DatabaseClient { public function query(string $sql): array { return []; } } final class ReportService { #[Autowired] protected PoolManagerInterface $poolManager; public function __construct() { $this->poolManager->add($this, new DatabaseClient(), 4); } public function load(): array { $db = $this->poolManager->guard($this, timeout: 1.0); return $db->query('SELECT * FROM reports'); } }
Docs: https://docs.switon.dev/latest/pool
License
MIT.