Looking to hire Laravel developers? Try LaraJobs

laravel-toolbox maintained by mimisk

Description
A minimal toolbox package for Laravel applications.
Last update
2026/04/23 23:40 (dev-main)
License
Links
Downloads
0

Comments
comments powered by Disqus

toolbox

Tests Latest Version on Packagist Total Downloads

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