Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Repository Doctrine Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: The package is a Doctrine-based xAPI repository layer, not a native Laravel/Eloquent package. It fits Laravel services that already use Doctrine ORM/DBAL or are willing to add it; it is a poor fit for Eloquent-only applications. v0.3.0 improves completeness by adding mapping classes for all statement properties, which reduces custom mapping code and aligns better with a full xAPI statement model.
  • Integration feasibility: Feasible for a Laravel/PHP team with Doctrine experience, but not plug-and-play. Integration requires wiring php-xapi/repository-api ^0.3 interfaces, registering Doctrine mappings, creating/validating schema migrations, and binding the new StatementRepository in the container. Teams using the removed MappedStatement, MappedVerb, or MappedStatementRepository classes must refactor.
  • Technical risk: Medium-high. The package is still pre-1.0 and v0.3.0 introduces breaking changes in a minor release: MappedStatement and MappedVerb are removed from php-xapi/model, replaced by XApi\Repository\Doctrine\Mapping\Statement and Mapping\Verb; MappedStatementRepository is replaced by Repository\Mapping\StatementRepository. Upstream constraints now require php-xapi/model ^1.0, php-xapi/test-fixtures ^1.0, and repository-api ^0.3, so dependency alignment must be verified.
  • Key questions: Which Laravel and PHP versions must be supported? Is Doctrine ORM/DBAL already approved in the stack? Does the application use any removed Mapped* classes? What xAPI conformance level is required? How will statement storage scale and be indexed? Are attachments, authority, and statement versioning in scope? Will the team pin this package and upstream xAPI dependencies in production?

Integration Approach

  • Stack fit: Best suited to Laravel services using Doctrine via laravel-doctrine or a standalone Doctrine bootstrap. For Eloquent-only applications, treat this as a separate repository adapter or avoid until an Eloquent-compatible layer exists.
  • Migration path: From earlier v0.2-style usage, replace MappedStatement with XApi\Repository\Doctrine\Mapping\Statement, replace MappedVerb with XApi\Repository\Doctrine\Mapping\Verb, and replace MappedStatementRepository with XApi\Repository\Doctrine\Repository\Mapping\StatementRepository. Update Composer constraints for php-xapi/model ^1.0, php-xapi/test-fixtures ^1.0, and php-xapi/repository-api ^0.3, then re-run Doctrine schema validation and repository tests.
  • Compatibility: The release relies on stable php-xapi/model ^1.0, but the package itself remains at v0.3.x and repository-api is still ^0.3. Confirm PHP, Doctrine DBAL/ORM, and Laravel compatibility through the package’s Composer constraints and a CI matrix. Lock production versions and avoid floating constraints.
  • Sequencing: Start with a non-production spike: install v0.3.0, wire new mappings and repository bindings, refactor removed class references, run xAPI fixture-based conformance tests, validate schema migrations in staging, then canary before production. Keep a rollback plan because namespace and dependency changes are broad.

Operational Impact

  • Maintenance: Moderate ongoing effort. The pre-1.0 release cadence and breaking changes require active dependency ownership, changelog monitoring, and regression tests around statement mapping and repository behavior.
  • Support: Internal expertise must cover Laravel, Doctrine, and xAPI. External/community support is likely limited for this specific integration; document container bindings, Doctrine mapping configuration, schema, and upgrade steps.
  • Scaling: Scaling depends primarily on the underlying database and Doctrine configuration. Statement volume can grow quickly, so plan indexes for agent, verb, object, timestamp, and common query patterns. Attachments and large payloads may need object storage outside this repository layer.
  • Failure modes: Common risks include stale Doctrine mappings, container binding errors after repository namespace changes, schema migration failures, incompatible repository-api versions, missing statement-property mappings, and performance degradation from unindexed statement queries.
  • Ramp-up: Medium for teams comfortable with Doctrine; high for Eloquent-only Laravel teams. Budget time for Doctrine onboarding, xAPI domain testing, and upgrade-related refactoring before committing to production use.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager