semitexa / orm
Semitexa ORM — attribute-driven schema, connection pooling, MySQL adapter
Requires
- php: ^8.4
- semitexa/core: *
- semitexa/tenancy: *
Requires (Dev)
- swoole/ide-helper: ^5.1
- dev-master
- 2026.04.15.1848
- 2026.04.15.0921
- 2026.04.14.1121
- 2026.04.13.0911
- 2026.04.12.1209
- 2026.04.09.1145
- 2026.04.07.1133
- 2026.04.05.0855
- 2026.04.03.1349
- 2026.04.03.1240
- 1.0.23
- v1.0.22
- 1.0.20
- v1.0.18
- v1.0.17
- v1.0.16
- v1.0.15
- v1.0.14
- v1.0.13
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- dev-develop
This package is auto-updated.
Last update: 2026-04-15 18:52:41 UTC
README
Attribute-driven ORM with schema definition, connection pooling, and MySQL 8.0+ support.
Purpose
Maps PHP classes to database tables using PHP 8.4 attributes. Provides Swoole-compatible connection pooling, typed column definitions, relation mapping, and a filtering architecture with auto-indexed filterable fields.
Role in Semitexa
Depends on Core and Tenancy. Depended on by Cache, Media, Scheduler, Search, Storage, Workflow, and Platform modules. Central persistence layer for all database-backed functionality.
Key Features
#[FromTable],#[Column],#[PrimaryKey],#[Index]for schema definition- Relations:
#[BelongsTo],#[HasMany],#[OneToOne],#[ManyToMany] #[Filterable]with auto-indexing and typedfilterByX()methods#[Aggregate]for virtual computed fields- Traits:
HasTimestamps,SoftDeletes,HasUuid,HasUuidV7(BINARY(16) chronological) - Domain mapping via
ResourceModel,#[AsMapper], andDomainRepository - Swoole
Channel-based connection pool - MySQL 8.0+ with version detection and capability checks
SchemaCollectorfor attribute-driven schema sync
Notes
ORM resources go in Application/Db/MySQL/Model/. Domain entities live in Domain/Model/. The Resource folder is reserved for response DTOs. Connection pooling is Swoole-native using Channel-based leasing.