Download the PHP package datomatic/laravel-enum-state-machine without Composer
On this page you can find all versions of the php package datomatic/laravel-enum-state-machine. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download datomatic/laravel-enum-state-machine
More information about datomatic/laravel-enum-state-machine
Files in datomatic/laravel-enum-state-machine
Package laravel-enum-state-machine
Short Description A simple state machine for enums in Laravel
License MIT
Homepage https://github.com/datomatic/laravel-enum-state-machine
Informations about the package laravel-enum-state-machine
Laravel enum state machine
This package it's simple state transitions control for enums in Laravel, this is not an implementation of state machine pattern. Allowing you to prevent unlogically transition and also controlling the initial state of the enum fields on your models.
Installation
Laravel 10+ and PHP 8.2+ are required.
You can install the package via composer:
You can publish and run the migrations with:
You can publish the config file with:
This is the contents of the published config file:
Using Laravel IDE Helper?
If you are using Laravel IDE Helper, you need to run the following command:
and add LaravelEnumStateMachineModelIdeHelperHook::class
on model_hooks
array in config/ide-helper.php
Usage
Laravel enum state machine it's a simple state transitions control for enums in Laravel, this is not an implementation of state machine pattern.
In the default mode, if the transition is not allowed, an exception StatusTransitionDenied
will be thrown.
In the soft mode, if the transition is not allowed, an error message will be logged.
Setting the model
You need to define the casts in your model and the transition control function. The first param on the casting is the enum class and the optional second param is the soft mode modality (if no second param is passed, the default mode configured in config file is used). You can cast multiple fields if needed. The transition method name is composed by the enum field name (camelCase) + Transitions and serve to define whether a transition is allowed or not.
Use the model
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- Alberto Peripolli
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-enum-state-machine with dependencies
spatie/laravel-package-tools Version ^1.16
illuminate/contracts Version ^10.0||^11.0