microweber-packages / microweber-database
Reusable Laravel database manager package with caching, CRUD helpers, query filtering, model traits and utilities
Package info
github.com/microweber-packages/microweber-database
pkg:composer/microweber-packages/microweber-database
v1.0.0
2026-11-03 16:15 UTC
Requires
- php: ^8.2
- graham-campbell/markdown: ^15.0|^16.0
- illuminate/cache: ^10.0|^11.0|^12.0|^13.0
- illuminate/database: ^10.0|^11.0|^12.0|^13.0
- illuminate/events: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- microweber-packages/microweber-event-manager: *
- microweber-packages/microweber-format: *
- microweber-packages/microweber-multilanguage: *
- microweber-packages/microweber-package: *
- microweber-packages/microweber-repository: *
- microweber-packages/microweber-url: *
- microweber-packages/microweber-user: *
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
Suggests
- doctrine/dbal: Required only for the Postgres schema-introspection path in Utils (guarded; throws a friendly error if missing).
Provides
None
Conflicts
None
Replaces
- microweber-packages/database: *
This package is auto-updated.
Last update: 2026-11-03 17:06:15 UTC
README
A reusable Laravel package providing database management utilities, CRUD helpers, query caching, model traits, and more.
Installation
composer require microweber-packages/microweber-database
Features
- DatabaseManager — Generic get/save/delete/query operations with caching
- BaseModel — Extended Eloquent model with validation support
- Crud — Table-based CRUD helper class
- CachedBuilder — Eloquent and Query builders with automatic cache tagging
- Model Traits — CacheableQueryBuilderTrait, HasSlugTrait, HasCreatedByFieldsTrait, HasTimestampsTrait, MaxPositionTrait, ExtendedSave, QueryFilter, ParentCannotBeSelfTrait
- Casts — Markdown, ReplaceSiteUrl, StripTags, StrToLower, StrToLowerTrim
- Observers — BaseModelObserver, CreatedByObserver
- Utils — Table builder, schema utilities, SQL import, field introspection
- Helper functions —
db_get(),db_save(),db_delete(),get_table_prefix()
Usage
Basic CRUD
// Save data $id = db_save('my_table', ['name' => 'John', 'email' => 'john@example.com']); // Get data $results = db_get('my_table', 'limit=10&order_by=id desc'); // Get single record $record = db_get('my_table', 'single=1&id=' . $id); // Delete db_delete('my_table', $id);
Building Tables
DatabaseManager::build_table('my_table', [ 'name' => 'string', 'email' => 'string', 'bio' => 'text', 'updated_at' => 'dateTime', 'created_at' => 'dateTime', ]);
Using Traits in Models
use MicroweberPackages\Database\Traits\CacheableQueryBuilderTrait; use MicroweberPackages\Database\Traits\HasCreatedByFieldsTrait; class MyModel extends \Illuminate\Database\Eloquent\Model { use CacheableQueryBuilderTrait; use HasCreatedByFieldsTrait; }
License
MIT