Skip to content

Instantly share code, notes, and snippets.

Avatar

Eduardo Guzmán H. eduarguz

View GitHub Profile
@laravel-shift
laravel-shift / .php_cs.laravel.php
Last active May 8, 2021
PHP CS Fixer - Laravel Coding Style Ruleset
View .php_cs.laravel.php
<?php
use PhpCsFixer\Config;
use PhpCsFixer\Finder;
$rules = [
'array_syntax' => ['syntax' => 'short'],
'binary_operator_spaces' => [
'default' => 'single_space',
'operators' => ['=>' => null]
@calebporzio
calebporzio / HiddenInput.vue
Created May 2, 2018
Little Vue component for turning JSON into native HTML for inputs
View HiddenInput.vue
<script>
import _ from 'lodash'
export default {
props: [ 'name', 'value' ],
methods: {
flatInputsFromDeepJson(item, key, h) {
if (typeof item === 'object') {
return _.flatMapDeep(item, (value, newKey) => {
@chronon
chronon / ext.txt
Created Feb 18, 2017
List of docker-php-ext-install extension names
View ext.txt
Possible values for ext-name:
bcmath
bz2
calendar
ctype
curl
dba
dom
enchant
@iben12
iben12 / 1_Laravel_state-machine.md
Last active Feb 26, 2021
Laravel: State-machine on Eloquent Model
View 1_Laravel_state-machine.md

Implementing State Machine On Eloquent Model*

* Update (12.09.2017): I have improved the trait so that it can be used with objects other than Eloquent Models.

Some days ago I came across a task where I needed to implement managable state for an Eloquent model. This is a common task, actually there is a mathematical model called "Finite-state Machine". The concept is that the state machine (SM) "can be in exactly one of the finite number of states at any given time". Also changing from one state to another (called transition) depends on fulfilling the conditions defined by its configuration.

Practically this means you define each state that the SM can be in and the possible transitions. To define a transition you set the states on which the transition can be applied (initial conditions) and the only state in which the SM should be after the transition.

That's the theory, let's get to the work.