mimisk / laravel-toolbox
A minimal toolbox package for Laravel applications.
Requires
- php: ^8.4
- illuminate/support: ^12.0|^13.0
Requires (Dev)
- larastan/larastan: ^3.0
- orchestra/testbench: ^10.0|^11.0
- phpunit/phpunit: ^11.0|^12.0
This package is auto-updated.
Last update: 2026-04-23 21:41:05 UTC
README
Minimal Laravel 12/13 package scaffold for reusable toolbox utilities.
Requirements
- PHP 8.4+
- Laravel 12 or 13
Installation
composer require mimisk/laravel-toolbox
Laravel auto-discovers the package service provider.
Trait Columns
| Trait | Required Columns (default) | Custom method |
|---|---|---|
HasSlug |
slug + source column title |
getSlugColumn(), getSlugSourceColumn() |
HasCode |
code |
getCodeColumn(), getCodePrefix(), getCodeSeparator(), getCodePadding(), getCodeStartNumber() |
HasUuid |
uuid |
getUuidColumn() |
HasUlid |
ulid |
getUlidColumn() |
HasActiveFlag |
is_active (boolean) |
getActiveFlagColumn() |
HasPublishedState |
published_at (datetime/timestamp nullable) |
getPublishedAtColumn() |
HasArchivedState |
archived_at (datetime/timestamp nullable) |
getArchivedAtColumn() |
HasMetaData |
metadata (json nullable) |
getMetaDataColumn() |
HasSortOrder |
sort_order (integer nullable) |
getSortOrderColumn() |
Included Traits
HasSlug
Automatically generates a slug on model creation from a source attribute (default source: title, target column: slug).
use Mimisk\LaravelToolbox\Traits\HasSlug; class Post extends Model { use HasSlug; protected function getSlugSourceColumn(): string { return 'name'; } }
HasCode
Automatically generates incremental codes on model creation (default column: code, default format: 000001, 000002, ...).
use Mimisk\LaravelToolbox\Traits\HasCode; class Invoice extends Model { use HasCode; protected function getCodePrefix(): string { return 'INV'; } protected function getCodePadding(): int { return 5; } }
HasUuid
Automatically sets a UUID on model creation (default column: uuid).
use Mimisk\LaravelToolbox\Traits\HasUuid; class Invoice extends Model { use HasUuid; }
HasUlid
Automatically sets a ULID on model creation (default column: ulid).
use Mimisk\LaravelToolbox\Traits\HasUlid; class Ticket extends Model { use HasUlid; }
HasActiveFlag
Adds active/inactive scopes and helpers for boolean flags (default column: is_active).
use Mimisk\LaravelToolbox\Traits\HasActiveFlag; class Stage extends Model { use HasActiveFlag; } $activeStages = Stage::active()->get(); $stage->deactivate();
HasPublishedState
Adds published/unpublished scopes and helpers using a datetime field (default column: published_at).
use Mimisk\LaravelToolbox\Traits\HasPublishedState; class Article extends Model { use HasPublishedState; } $published = Article::published()->get(); $article->markAsPublished();
HasArchivedState
Adds archived/unarchived scopes and helpers using a datetime field (default column: archived_at).
use Mimisk\LaravelToolbox\Traits\HasArchivedState; class Event extends Model { use HasArchivedState; } $archived = Event::archived()->get(); $event->markAsArchived();
HasMetaData
Adds helpers for structured metadata access via an array-cast attribute (default column: metadata).
use Mimisk\LaravelToolbox\Traits\HasMetaData; class Product extends Model { use HasMetaData; } $product->setMeta('shipping.weight', 2.4)->save(); $weight = $product->getMeta('shipping.weight');
HasSortOrder
Automatically sets incremental sort order on create and provides an ordered scope (default column: sort_order).
use Mimisk\LaravelToolbox\Traits\HasSortOrder; class MenuItem extends Model { use HasSortOrder; } $items = MenuItem::ordered()->get();
Testing
composer test
Static Analysis
composer analyse