25 lines
2.1 KiB
Markdown
25 lines
2.1 KiB
Markdown
### Changelog
|
||
|
||
All notable changes to this project will be documented in this file.
|
||
|
||
#### Unreleased
|
||
|
||
- Core ORM (DAO/DTO) with dynamic finders, `fields()` projection, relations (hasOne/hasMany/belongsTo), nested eager loading, per‑relation constraints, and SQL `belongsToMany` with pivot helpers (`attach`, `detach`, `sync`).
|
||
- MongoDB production adapter (`ext-mongodb` + `mongodb/mongodb`) and Mongo DAO layer with relations (MVP), projections/sort/limit, pagination, and a small filter builder.
|
||
- Pagination helpers for SQL and Mongo: `paginate` and `simplePaginate`.
|
||
- Model metadata & schema mapping: column casts (incl. custom casters), timestamps, soft deletes.
|
||
- Migrations & Schema Builder (portable): create/drop/alter; CLI (`vendor/bin/pairity`) with migrate/rollback/status/reset/make:migration. Drivers: MySQL/MariaDB, SQLite, PostgreSQL, SQL Server, Oracle.
|
||
- Join‑based eager loading (opt‑in, SQL, single‑level) with safe fallbacks.
|
||
- Unit of Work (opt‑in): identity map; deferred updates/deletes; relation‑aware delete cascades; optimistic locking; snapshot diffing (flagged); identity map controls; coalescing.
|
||
- Event system: DAO and UoW events; listeners/subscribers.
|
||
- CI: GitHub Actions matrix (PHP 8.1–8.3) with MySQL + Mongo services; guarded tests.
|
||
|
||
#### 0.1.0 — 2025-12-11
|
||
|
||
- Dependencies: upgrade `mongodb/mongodb` to `^2.0` (tested at 2.1.x). Requires `ext-mongodb >= 2.1`.
|
||
- Tests: migrate to PHPUnit 10; update `phpunit.xml.dist` and test cases accordingly.
|
||
- MongoDB tests: marked as `@group mongo-integration` and skipped by default via `phpunit.xml.dist` group exclusion. Each test pings the server and skips when not available.
|
||
- SQL tests: stabilized MySQL `belongsToMany` eager and join-eager tests by aligning anonymous DAO constructors with runtime patterns and adding needed projections.
|
||
- PostgreSQL: fix identifier quoting by using double quotes in `PostgresGrammar` (no more backticks in generated DDL). `PostgresSmokeTest` passes when a Postgres instance is available.
|
||
- SQLite: portable DDL in schema tests; minor assertion cleanups for accessors/casters.
|