semitexa / core
Semitexa Core - framework runtime, console tooling, and composer integration
Requires
- php: ^8.4
- composer-plugin-api: ^2.0
- predis/predis: ^2.0
- psr/container: ^2.0
- symfony/console: ^7.3
- symfony/process: ^7.3
Requires (Dev)
- phpunit/phpunit: ^10.0
- semitexa/tenancy: *
- swoole/ide-helper: ^5.1
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- 2026.10.19.0811
- 2026.10.16.1744
- 2026.10.15.2225
- 2026.10.14.0919
- 2026.10.09.0942
- 2026.10.08.0620
- 2026.10.03.1952
- 2026.10.01.1020
- 2026.09.30.1034
- 2026.09.27.0404
- 2026.09.24.1147
- 2026.09.23.1717
- 2026.09.22.1020
- 2026.09.19.1020
- 2026.09.17.1352
- 2026.09.17.1037
- 2026.09.14.0605
- 2026.09.13.1915
- 2026.09.13.1330
- 2026.09.13.0749
- 2026.09.12.0614
- 2026.09.11.1941
- 2026.09.11.0529
- 2026.09.09.1708
- 2026.09.08.2003
- 2026.09.05.1733
- 2026.09.04.0512
- 2026.09.03.1906
- 2026.09.02.1513
- 2026.09.02.0604
- 2026.09.01.2231
- 2026.08.26.1606
- 2026.08.26.1515
- 2026.08.26.1507
- 2026.08.26.1057
- 2026.08.25.1900
- 2026.08.25.0718
- 2026.08.19.2107
- 2026.08.19.0649
- 2026.08.15.0626
- 2026.08.12.0606
- 2026.08.12.0542
- 2026.08.04.2028
- 2026.07.28.1623
- 2026.07.28.0830
- 2026.07.27.1152
- 2026.07.25.0821
- 2026.07.23.1344
- 2026.07.23.0617
- 2026.07.22.1226
- 2026.07.16.2144
- 2026.07.15.1418
- 2026.07.11.0650
- 2026.07.11.0619-beta
- 2026.07.07.1936
- 2026.07.06.1438
- 2026.06.22.0520
- 2026.06.21.0352
- 2026.05.24.0646
- 2026.05.19.1709
- 2026.05.18.1642
- 2026.05.08.1640
- 2026.04.26.0639
- 2026.04.23.0637
- 2026.04.22.1153
- 2026.04.22.1008
- 2026.04.21.1359
- 2026.04.21.0704
- 2026.04.17.1043
- 2026.04.17.0433
- 2026.04.15.1848
- 2026.04.15.1128
- 2026.04.15.0921
- 2026.04.12.1209
- 2026.04.09.1145
- 2026.04.08.2025
- 2026.04.07.2058
- 2026.04.07.1933
- 2026.04.07.1133
- 2026.04.06.1418
- 2026.04.05.2113
- 2026.04.05.1915
- 2026.04.05.0855
- 2026.04.03.1349
- 2026.04.03.1240
- 2026.04.03.1207
- 1.1.64
- 1.1.63
- 1.1.62
- 1.1.61
- dev-develop
- dev-feat/kiss-hug
- dev-feat/kiss-hug-feeds
- dev-fix/develop-contracts-sync
- dev-fix/develop-contracts-for-dependents
- dev-chore/phpstan-baseline-cleanup
- dev-codex/payload-transport
- dev-review/package-metadata-20260323
- dev-bugfix/tenancy
This package is auto-updated.
Last update: 2026-10-19 23:33:01 UTC
README
Framework runtime: request/response lifecycle, attribute-driven discovery, DI container, CLI tooling, and Swoole integration.
Purpose
The foundation of every Semitexa application. Manages the full request lifecycle — from route discovery via PHP 8.4 attributes through handler execution to response rendering. Provides the DI container with two-tier scoping (worker-readonly + request-mutable), the PHP console behind bin/semitexa, and a Composer plugin that keeps the generated registry in sync.
Install
Included in every project created by the installer (https://semitexa.com/install.sh).
Requires PHP 8.4 with Swoole 6.x. Both are provided by the project's Docker image, so the host needs only Docker with Compose v2.
Role in Semitexa
Root dependency for all Semitexa packages. Every module, platform component, and library builds on Core's attribute discovery, container, and pipeline.
Key Features
- Attribute-driven routing:
#[AsPublicPayload](core),#[AsProtectedPayload]/#[AsServicePayload](semitexa/authorization) on the request DTO,#[AsPayloadHandler]on the handler - route-level
produces/consumesmetadata for content negotiation AttributeDiscoveryandClassDiscoveryvia Composer classmap- Two-tier DI:
SemitexaContainer(worker-scoped readonly) +RequestScopedContainer(per-request mutable) RouteExecutorpipeline with exception mapping and response decorationExceptionResponseMapperInterface/RouteMetadataResolverInterface/RouteInspectionRegistryInterfaceseamsHttpStatusenum replacing magic integersEventDispatcherwith sync, async (deferred) and queued listener execution- Redis and SwooleTable session handlers
- The console behind
bin/semitexa(server:start,orm:syncvia semitexa/orm,make:*generators via semitexa/dev) - Composer plugin: runs
registry:syncaftercomposer install/updateand generates test PSR-4 entries on autoload dump
Notes
Core is a Composer plugin (type: composer-plugin). The plugin runs registry:sync after install/update and adds test PSR-4 entries for package test fixtures; it does not install any scaffolding (project scaffolding ships in semitexa/ultimate). Discovery itself (ClassDiscovery) reads Composer's classmap. The two-tier container design is essential for Swoole: readonly bindings survive across requests, mutable bindings are cloned per request.