← Back to Home

Frequently Asked Questions

Everything you need to know about SiroPHP.

What is SiroPHP?

SiroPHP is a lightweight PHP API framework built for rapid development and instant debugging. It features minimal dependencies, CRUD scaffolding, full request tracing, and one-command production bug replay.

How is SiroPHP different from Laravel?

SiroPHP has minimal dependencies vs Laravel's ~200 packages, ~0.5ms cold boot (Linux) vs 60-101ms, and ~4MB+ RAM vs ~84MB. It focuses on pure API development with built-in debugging workflow — no Blade, no asset compiling, no service providers.

How do I install SiroPHP?

Run "composer create-project sirosoft/api my-app" for a full project skeleton, or "composer require sirosoft/core" to add the framework engine to an existing project.

How do I build APIs fast with SiroPHP?

Use "php siro make:crud products" to generate full CRUD endpoints with model, migration, controller, routes, and tests in 2 seconds. Then run "php siro serve" to start the dev server.

How does production debugging work?

Every response includes an X-Siro-Trace-Id header. Use "php siro replay <trace_id>" to reproduce the exact request, complete with headers, body, SQL queries, and timing.

Is SiroPHP production ready?

Yes. 19,496 tests with 100% pass rate, security audited (42 attack vectors, 0 vulnerabilities), and features like JWT auth, rate limiting, CSRF protection, brute force protection, env 5-tier chain, FrankenPHP support, and log sanitization.

What databases does SiroPHP support?

MySQL, PostgreSQL, and SQLite. The Schema Builder generates driver-agnostic migrations — write once, run on any database.

Do I need to install PHP extensions?

SiroPHP requires PHP 8.2+ with PDO, JSON, Mbstring, OpenSSL, and cURL extensions. These are common and usually pre-installed.

Can I migrate from SiroPHP to Laravel later?

Yes. SiroPHP's patterns are Laravel-compatible: Models, QueryBuilder, Validation, Routes, and Middleware all follow similar conventions. Migration is straightforward without a full rewrite.

Does SiroPHP have authentication built in?

Yes. "php siro make:auth" generates a complete JWT authentication system with register, login, logout, refresh tokens, email verification, and forgot/reset password.

Can I generate API documentation automatically?

Yes. "php siro make:openapi" generates OpenAPI/Swagger documentation from your validation rules. "php siro make:postman" generates a Postman collection.

Is SiroPHP suitable for serverless deployment?

Yes. With ~0.5ms cold boot (Linux+OPcache) and ~4MB+ memory usage, SiroPHP is ideal for serverless platforms like AWS Lambda, Vercel, and Laravel Vapor.

What is .env.local and how does env priority work?

SiroPHP uses a 5-tier environment priority chain: .env.local (highest) → .env.siro → .env.{environment} → .env → defaults. This allows safe local overrides without affecting team configs or production.

Does SiroPHP support FrankenPHP?

Yes. SiroPHP includes official Docker images with FrankenPHP for production deployment. FrankenPHP provides better performance than traditional PHP-FPM with automatic HTTPS, early hints, and real-time capabilities.

How does regression testing work with SiroPHP?

Run "php siro test:regression --limit=50" to replay all recorded traces and automatically detect changes in status codes, response structure, or success rates. Use --fail to exit non-zero on any regression (CI-friendly). This ensures your fix doesn&#39;t break existing behavior.

Can I create tests from real production bugs?

Yes. After replaying a bug with "php siro replay <trace_id> --test", SiroPHP auto-generates a PHPUnit test file from the actual production trace. This creates a permanent regression test for that bug — so it never comes back. Run "php siro make:test --from-trace=<id>" to do this from any trace.

Still have questions?

Open an issue on GitHub and we'll help you out.

Ask on GitHub →