{"id":50822466,"url":"https://github.com/true-async/yii3-spawn","last_synced_at":"2026-06-13T15:04:11.290Z","repository":{"id":359280623,"uuid":"1245328226","full_name":"true-async/yii3-spawn","owner":"true-async","description":"Yii3 adapter for PHP TrueAsync — async HTTP server with coroutine-per-request isolation","archived":false,"fork":false,"pushed_at":"2026-05-21T06:20:14.000Z","size":42,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-21T13:05:30.137Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/true-async.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-21T05:58:13.000Z","updated_at":"2026-05-21T06:25:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/true-async/yii3-spawn","commit_stats":null,"previous_names":["true-async/yii3-spawn"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/true-async/yii3-spawn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Fyii3-spawn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Fyii3-spawn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Fyii3-spawn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Fyii3-spawn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/true-async","download_url":"https://codeload.github.com/true-async/yii3-spawn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Fyii3-spawn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34288669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-13T15:04:07.962Z","updated_at":"2026-06-13T15:04:11.276Z","avatar_url":"https://github.com/true-async.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yii3-spawn\n\nYii3 adapter for [PHP TrueAsync](https://github.com/true-async/php-async) — runs a Yii3\napplication on the [TrueAsync HTTP server](https://github.com/true-async/server) with\n**coroutine-per-request isolation**.\n\n\u003e Status: **planning / WIP**. See [PLAN.md](PLAN.md) for the full design and roadmap.\n\n## What it does\n\nA standard Yii3 application is built once per worker. The TrueAsync server then handles\nmany HTTP requests **concurrently** inside that single worker — each request runs in its\nown coroutine. `yii3-spawn` makes the stateful Yii3 singletons safe under that concurrency\nby backing their per-request state with `Async\\request_context()`, so application code\nkeeps working unchanged.\n\n## Requirements\n\n- PHP 8.6+ with the **TrueAsync** extension\n- TrueAsync server extension (`TrueAsync\\HttpServer`)\n- Yii3 (`yiisoft/yii-http`, `yiisoft/di`, `yiisoft/yii-runner`)\n\n## Installation\n\n```bash\ncomposer require true-async/yii3-spawn\n```\n\n## Running\n\nWire the runner into your Yii3 project's `public/index.php` (see\n[`examples/index.php`](examples/index.php)):\n\n```php\nuse TrueAsync\\Yii3\\Runtime\\TrueAsyncRunner;\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\n(new TrueAsyncRunner(\n    rootPath: dirname(__DIR__),\n    serverOptions: ['host' =\u003e '0.0.0.0', 'port' =\u003e 8080, 'workers' =\u003e 1],\n))-\u003erun();\n```\n\n`workers \u003e 1` enables the TrueAsync server's built-in worker pool — no manual\nthread spawning.\n\nSee [PLAN.md](PLAN.md) for architecture, the list of adapted components, and the\nimplementation roadmap.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrue-async%2Fyii3-spawn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrue-async%2Fyii3-spawn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrue-async%2Fyii3-spawn/lists"}