kabiroman/adaptive-entity-manager-bundle
Adaptive Entity Manager for Laravel offers a flexible, configuration-driven way to define, manage, and adapt Eloquent entities at runtime. Streamline CRUD, dynamic schemas, and relationships with a lightweight bundle built for extensibility and easy integration.
composer require kabiroman/adaptive-entity-manager-bundle:^3.1. This release pins kabiroman/adaptive-entity-manager:^1.6, so the DOM/value-object layer arrives as a transitive dependency — don't require it separately at a different constraint or you'll get a solver conflict.AppServiceProvider::register() rather than typehinting the concrete class everywhere.ValueObjectAwareEntityManagerInterface, then the concrete AdaptiveEntityManager service. In 3.1.x the VO helpers (getValueObjectRegistry(), hasValueObjectSupport()) live on the aware interface only — reading these two files tells you what the bundle actually exposes before you touch config.EntityManagerInterface for anything that only creates/persists/removes entities. Inject ValueObjectAwareEntityManagerInterface only in the classes that actually need getValueObjectRegistry() or hasValueObjectSupport(). Mixing the two in one class is the fastest way to carry 3.1.0's interface split into your whole codebase.$this->app->bind(ValueObjectAwareEntityManagerInterface::class, AdaptiveEntityManager::class) in a service provider keeps the rest of the app free of concrete-class references — important because the bundle's own services are still registered as AdaptiveEntityManager.ValueObjectInterface, you declare value-object fields explicitly in field metadata instead of relying on interface detection. This is more verbose but removes the "implement an interface you don't want" tax on domain classes — lean into it by keeping your domain classes free of package interfaces entirely.EntityManagerInterface and then calls getValueObjectRegistry() or hasValueObjectSupport() will fail after composer update. Grep for those two method names and for EntityManagerInterface in the same file; switch those callsites to ValueObjectAwareEntityManagerInterface (or AdaptiveEntityManager) rather than widening the plain interface.AdaptiveEntityManager. Don't "clean up" your bindings to an interface that the bundle never registers — you'll get Target [X] is not instantiable at resolution time.getValueObjectRegistry() and the resolved field metadata for one entity to see exactly what the manager knows; confirm hasValueObjectSupport() is true on the instance you injected; app()->bound(...) checks catch alias mistakes fast.AdaptiveEntityManager — the concrete class is the bundle's, so decoration keeps your upgrades clean.How can I help you explore Laravel packages today?