PHP code example of troojaan / laravel-state-machine
1. Go to this page and download the library: Download troojaan/laravel-state-machine library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
troojaan / laravel-state-machine example snippets
'do' => function () {
//
},
`do` => 'abort',
'do' => ['MyService', 'handle'],
`do` => 'MyService@handle',
// The callback won't be passed any argument
'args' => [],
// You can pass strings and arrays as JSON-like strings.
'args' => ['"approved"', '["foo", "bar"]', '{"foo": "bar"}'],
// The callback will receive the object that is associated with the state machine,
// e.g. the `$article`.
'args' => ['object'],
// The callback will receive the `SM\Event\TransitionEvent` instance.
'args' => ['event'],
'callbacks' => [
// will be called when testing a transition
'guard' => [
'guard_on_submitting' => [
// call the callback on a specific transition
'on' => 'submit_changes',
// will call the method of this class
'do' => ['MyService', 'handle'],
// arguments for the callback
'args' => ['object', 'event'],
],
],
],
php
// Get the article
$article = App\Article::find($id);
// Get the state machine for this article, and graph called "simple"
// Using the facade
$stateMachine = StateMachine::get($article, 'simple');
// Or using the service container with dependency injection
public function method(SM\Factory\FactoryInterface $factory)
{
$stateMachine = $factory->get($article, 'simple');
}
php
// Get the actual state of the object
$stateMachine->getState();
// Get all available transitions
$stateMachine->getPossibleTransitions();
// Check if a transition can be applied: returns true or false
$stateMachine->can('approve');
// Apply a transition
$stateMachine->apply('publish');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.