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

Crud Abstract Data Bundle Laravel Package

glifery/crud-abstract-data-bundle

This Symfony bundle provides abstract data structures and CRUD scaffolding to cut boilerplate when building data-driven admin interfaces. It separates persistence from presentation, letting you define entities and reuse generic create, read, update, and delete logic across your application.

View on GitHub
Deep Wiki
Context7

Getting Started

This is a Symfony 2-era bundle, not a Laravel package, so "getting started" means understanding its shape well enough to decide whether to port the idea rather than install it.

  • Composer: composer require glifery/crud-abstract-data-bundle will resolve on modern PHP only by luck — the constraint set was written for PHP 5.x and Symfony 2.x (~2.3/~2.7 era). Expect to pin it into a throwaway Symfony 2 sandbox if you genuinely want to read the source in context.
  • Registration: in a legacy Symfony app, add the bundle to AppKernel::registerBundles() and (if the README mentions any) import its service config under app/config/config.yml. There is no service provider, facade, or config publish step — nothing maps to Laravel idioms.
  • Look first at the abstract data-provider interface and the CRUD manager/base-controller classes in src/. Those two are the entire conceptual payload: a manager that exposes create/read/update/delete, and a provider abstraction the manager delegates persistence to.
  • First use case: define a concrete provider for your entity (Doctrine repository-backed), register it as a service, and let the CRUD manager drive the operations from a controller. That is the whole loop — controller → manager → provider → storage.

In Laravel terms, the mental model is a service class with a CrudManager facade over a pluggable DataProvider contract, where Eloquent/DB is one possible driver.

Implementation Patterns

The package is thin, so patterns are about wrapping what it gives you.

Concrete provider per aggregate. Implement the abstract provider against whatever storage you have. In a Laravel port this is a class implementing your own DataProviderInterface with find, findAll, save, delete, mapping to Eloquent calls. Keep the provider dumb — no validation, no authorization.

Manager as a service, not a base controller. In Symfony the bundle likely ships base controller helpers; in Laravel, inject the manager into a resource controller or a dedicated CrudService. Prefer the service so jobs, commands, and API routes can reuse it.

Wrap with Laravel's HTTP layer. Bind the manager inside a Route::resource controller: index/show use find/findAll, store/update use save, destroy uses delete. Validation belongs in FormRequests, not in the provider.

Driver swap pattern. The one genuinely useful idea: keep the provider contract narrow and register it against an interface in a service provider, so you can swap Doctrine→Eloquent, SQL→array/in-memory for tests, or cached provider for production without touching the manager.

Event hooks around the manager. If the bundle fires pre/post create/update/delete events (typical for this genre), mirror that with Laravel model events or a thin dispatcher around your service — don't try to reuse Symfony's EventDispatcher.

Gotchas and Tips

  • Abandoned since 2015. No maintenance, no security updates, no compatibility with PHP 8 or Symfony 5/6+. The last release date is the strongest signal here.
  • Zero stars, zero dependents. There is effectively no community, no issue history to mine, no Stack Overflow answers. Assume the README is the only documentation and may be incomplete.
  • No Laravel integration exists. No service provider, no facade, no config publishing, no Laravel-version constraints. Installing it in a Laravel app will drag Symfony 2 components into vendor/ and conflict with Laravel's own Symfony dependencies — do not attempt it.
  • Namespace and autoload check first. If you're reading the source for ideas, verify composer.json autoload mappings before trusting class names in the README; small 2015 bundles often drift.
  • Testing is on you. Expect no test suite to lean on. If you port the pattern, write your own provider unit tests using an in-memory implementation — that's the easiest place to catch contract drift.
  • Main extension point is the abstract provider. That's the only seam the package offers. Everything else (validation, routing, serialization) was always the application's responsibility.
  • Debugging tip: when a CRUD operation silently no-ops, the fault is almost always in the provider's return value or a missing flush-equivalent — the manager layer above is thin and rarely the culprit.
  • Bottom line for a Laravel team: don't depend on it. Copy the two-interface shape — CrudManager over a DataProvider contract — into a small internal package or a app/Services/Crud directory. You'll get the abstraction the bundle was reaching for, with modern PHP, Eloquent, and your own tests, and none of the 2015 baggage.
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.
jinas/dhivatar
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