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

Orm Bundle Laravel Package

mindy/orm-bundle

Symfony bundle that integrates Mindy ORM, providing configuration, service wiring, and persistence support for entities and repositories. It offers a lightweight alternative to Doctrine for PHP applications that need straightforward database mapping and querying.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. mindy/orm-bundle is not a Laravel package. It is a bundle in the Symfony/MindyPHP sense — registered through a kernel lifecycle, configured by a DI extension, and wired via YAML/XML service definitions. Laravel resolves persistence through ServiceProvider classes, the config/*.php repository, and Eloquent's active-record model. The mismatch sits at the boot and container layer, which means it cannot be resolved with a facade or a thin wrapper: any integration is a shim project, and every Laravel version bump re-tests the shim. For a team standardizing on Laravel, the architecture-fit answer is a clean no.

Integration feasibility. Possible in theory, unattractive in practice. A spike would need to (a) emulate bundle registration without a Mindy/Symfony kernel, (b) translate the extension's config tree into Laravel's config repository, (c) bind the bundle's service IDs into Laravel's container, and (d) reconcile Symfony polyfills and event-dispatcher semantics against Laravel's own dispatcher. That is an adapter with an ongoing upkeep bill, not a composer require. The supported alternatives for a data-mapper need inside Laravel are laravel-doctrine/orm or a plain Illuminate\Database query builder — both maintained, both versioned against Laravel releases.

Technical risk. High, and driven by maturity signals rather than reviewed code. The package shows 1 star, 0 dependents, a composite score of 0.005, and no observable CI, static analysis, PHP 8.x support matrix, or release cadence. The MIT license makes forking legally trivial, which cuts both ways: it removes legal risk and makes "we fork it" the realistic end state — a liability the team owns outright. There is also an unresolved question of whether the ORM core is separable from the bundle wiring; if the Mindy kernel bootstraps static connection state, unit tests and queue workers will behave differently from HTTP requests. Treat that as a blocking unknown.

Key questions for the maintainer or evaluation spike.

  • Does the bundle hard-depend on the Mindy kernel and container, or can mindy/orm be instantiated standalone?
  • Is the persistence layer built on Doctrine DBAL/ORM, or is it a bespoke query builder with its own SQL dialect handling?
  • What PHP constraint is declared in composer.json, and is there CI proving it holds on 8.2/8.3?
  • What is the release and issue-response history over the last 12 months?
  • Are there integration tests against a real database, or only unit tests with mocks?
  • Who is the bus factor, and is there any stated succession or deprecation plan?

Recommendation. Do not adopt for Laravel. Cap spend at a 1–2 day read-only spike to confirm the framework coupling, then close the evaluation and route the underlying requirement to Eloquent or laravel-doctrine/orm. Document the decision so the same package is not re-evaluated next quarter.

Integration Approach

Stack fit. Poor. Laravel expects ServiceProvider registration, publishable config, contract-based resolution, and Artisan-driven migrations. A Mindy/Symfony bundle expects a kernel, bundle metadata, and DI service definitions. These are different object lifecycles, not different syntaxes. Any "it just installs" claim should be treated as unverified until a spike proves end-to-end service resolution inside a Laravel app.

Migration path (only if a mandate forces evaluation).

  1. Spike, 1–2 days. Install into a throwaway Laravel app, attempt manual instantiation of the ORM core outside the bundle, and log exactly which classes fail without the Mindy kernel. Abort here if the answer is "most of them."
  2. Abstraction, 3–5 days. Define repository interfaces in the domain layer and confine every direct reference to the bundle inside a single namespace (e.g. App\Support\MindyOrm). This preserves a cheap exit to Eloquent.
  3. Bridge, 5–10 days. A ServiceProvider that binds the adapter, maps configuration, and registers lifecycle hooks, including a per-request/per-job reset of any entity manager or unit of work.
  4. Test harness, 3–5 days. Integration tests against a real database plus a regression suite that runs on every Laravel upgrade.
  5. Decision gate. If any of steps 1–3 overruns its timebox or requires patching vendor code, stop and migrate to Eloquent.

Compatibility. Assume PHP 7.x-era code until proven otherwise, and assume no declared support for Laravel 10/11. Verify the composer.json PHP constraint first — a hard ^7.4 ends the evaluation immediately for modern Laravel. Watch the Composer resolution layer for Symfony polyfills that collide with Laravel's own dependencies, and for autoload conflicts that only surface on composer update.

Sequencing. Persistence abstraction first, vendor selection second. If the domain layer is written against interfaces from day one, the choice between this bundle and Eloquent becomes a swap rather than a rewrite. That is the only sequencing under which a low-maturity dependency is survivable, and it is worth doing regardless of which ORM wins.

Operational Impact

Maintenance. With 1 star and 0 dependents, upstream maintenance cannot be assumed. If the integration ships, we are the de facto maintainers: tracking PHP minor releases, patching advisories ourselves, and validating each Laravel upgrade against an untested library. Budget roughly 5–10% of one engineer's capacity per quarter for fork upkeep, indefinitely, plus a named owner.

Support. No community, no documented support channel, no Stack Overflow corpus, no SLA. Incidents get debugged from source by whoever is on call, which converts every persistence issue into a senior-engineer event. That escalation pattern — not the license, not the install — is the dominant hidden cost of this choice.

Scaling. Unmeasured. There are no published benchmarks, no query-logging or observability hooks, and no evidence of connection pooling or read/write splitting. Under Laravel Octane the risk sharpens: if the entity manager or unit of work is bound to kernel boot rather than request scope, state can leak across requests and produce cross-tenant data exposure. Treat that as a blocking concern to verify before any production path, not a nice-to-have.

Failure modes to plan for.

  • Container boot mismatch — services resolve in unit tests but fail under php artisan or queue workers.
  • Autoload or Symfony-polyfill collision that appears only on composer update.
  • Entity manager not reset between jobs, producing stale identity-map reads in queue workers.
  • Silent breakage on Laravel minor upgrades, with no upstream issue-tracker activity to signal it.
  • Abandonment — repository archived with no successor, forcing an emergency migration under time pressure.
  • Knowledge concentration — one engineer understands the fork, and their departure resets the clock.

Ramp-up. Effectively zero learning resources. Onboarding a new engineer means reading source, not docs: roughly 3–5 days per engineer versus hours for Eloquent. The bundle's own docs are thin enough that the source is the reference, and the daily API lives in the upstream mindy/orm package (Model, QuerySet, fields/), which is a second undocumented surface to learn.

Bottom line for the roadmap. Low opportunity (2.43), negligible adoption, and a framework mismatch make this a pass for any Laravel work. The correct TPM action is to record the decision and its rationale, redirect the requirement to a maintained ORM, and keep the persistence layer behind interfaces so the next vendor evaluation costs days instead of a quarter. If the package already exists in an inherited MindyPHP codebase, scope it as internally owned code with an explicit fork-or-migrate budget line — do not treat it as a dependency with an upstream.

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.
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings