Search by

microweber-packages / microweber-database

boksiora

Reusable Laravel database manager package with caching, CRUD helpers, query filtering, model traits and utilities

Package info

github.com/microweber-packages/microweber-database

Homepage

pkg:composer/microweber-packages/microweber-database

Statistics

Installs: 31

Dependents: 5

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-11-03 16:15 UTC

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