spiral/framework
Spiral Framework is a high-performance, long-running full-stack PHP framework with 60+ PSR-compatible components. Powered by RoadRunner for resident-memory apps, it supports GRPC, queues, WebSockets, background workers, and more.
Start by installing the framework via Composer (composer require spiral/framework) and bootstrapping with RoadRunner (roadrunner-server + spiral/roadrunner-bridge). The official spiral/app skeleton provides a production-ready starting point with DI, configuration, and bootstrap structure. First use cases typically involve:
#[Route('/api')])RepositoryInterface $repo)ValidationMiddleware) in app/src/Middlewareapp/config/ for core configs (routes.php, services.php, middleware.php) and app/src/ for module structure (controllers, services, repositories).modules/ directories (e.g., modules/User) with their own DI configs, controllers, and services—promoting decoupling and testability.spiral/jobs package: dispatch jobs (e.g., new SendEmailJob($user, $template)), configure workers via .rr.yaml, and consume via php spiral worker:consume.spiral/core’s ScopeInterface for lifecycle control in long-running contexts.app/config/middleware.php.Spiral\Testify trait for integration testing with bootstrapped kernel and DB transactions.Request or Router) in singleton services—reset or use ContextInterface to fetch fresh instances per cycle.spiral/cache + spiral/config with ConfigCacheInterface) to avoid boot-time penalties in dev/prod—but remember to php spiral cache:clear after changes.spiral/database with persistent connections (via spiral/database-connection + spiral/transactions) but close long-running connections manually to avoid leaks.spiral/debug package to profile request cycles; add #[Log] attribute to methods for structured logs or enable RoadRunner’s logs stderr for real-time output.app/src/Bootloader and implementing BootloaderInterface.How can I help you explore Laravel packages today?