php-xapi/repository-doctrine
Doctrine ORM persistence backend for php-xapi, providing repository implementations for storing and retrieving xAPI statements, agents, activities, and related learning data in relational databases. Integrates Doctrine entities and mappings with the php-xapi repository interfaces.
php-xapi domain model and your relational database. If your product needs to store/query xAPI Statements (LRS functionality, learning-record storage, analytics ingestion), this is the "don't build it yourself" option for the storage layer — you still own the API surface, auth, and query/business logic on top.MappedStatement/MappedVerb and MappedStatementRepository were removed from php-xapi/model and replaced by new mapping classes and a StatementRepository under XApi\Repository\Doctrine\Mapping. Any code, fixtures, or tests referencing the old class names must be migrated. Treat this as a planned refactor line item, not a drop-in upgrade.php-xapi/model ^1.0 and php-xapi/test-fixtures ^1.0 means the underlying domain model is now stable, which materially lowers the risk of the data model shifting under you. The repository layer itself (php-xapi/repository-api ^0.3, this package at 0.3.x) is still pre-1.0.Adopt when:
Mapped* classes → XApi\Repository\Doctrine\Mapping\*, MappedStatementRepository → StatementRepository).php-xapi/model 1.0 domain objects as your in-app representation, with this package as the persistence seam.Look elsewhere when:
To executives: This is a small, focused open-source component that saves us from hand-writing the database layer for xAPI learning records. The important signal in this release is that the underlying data model has reached a stable 1.0, which reduces the risk of our stored data schema churning. The persistence layer itself is still pre-1.0, so we should plan for occasional upgrade work rather than assume it is frozen.
To engineering: v0.3.0 is a breaking change. Mapping classes moved out of php-xapi/model into XApi\Repository\Doctrine\Mapping, and MappedStatementRepository is now StatementRepository under …\Repository\Mapping. All statement properties are now mapped, which closes the main functional gap for conformance-grade storage. Dependencies are now php-xapi/model ^1.0, php-xapi/test-fixtures ^1.0, and php-xapi/repository-api ^0.3. Recommendation: wrap the repository behind our own interface at the boundary so future renames stay contained, pin versions explicitly, and schedule the migration with tests that assert round-trip fidelity of every statement property.
How can I help you explore Laravel packages today?