PHP code example of kphoen / doctrine-state-machine-bundle
1. Go to this page and download the library: Download kphoen/doctrine-state-machine-bundle 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/ */
kphoen / doctrine-state-machine-bundle example snippets
namespace Acme\FooBundle\Entity;
use KPhoen\DoctrineStateMachineBehavior\Entity\Stateful;
use KPhoen\DoctrineStateMachineBehavior\Entity\StatefulTrait;
class Article implements Stateful
{
use StatefulTrait;
/**
* define your fields here
*/
/**
* @var string
*/
protected $state = 'new';
/**
* Set state
*
* @param string $state
* @return Article
*/
public function setState($state)
{
$this->state = $state;
return $this;
}
/**
* Get state
*
* @return string
*/
public function getState()
{
return $this->state;
}
/**
* Sets the object state.
* Used by the StateMachine behavior
*
* @return string
*/
public function getFiniteState()
{
return $this->getState();
}
/**
* Sets the object state.
* Used by the StateMachine behavior
*
* @param string $state
*/
public function setFiniteState($state)
{
return $this->setState($state);
}
}
namespace Acme\FooBundle\Entity;
use KPhoen\DoctrineStateMachineBehavior\Entity\Stateful;
use KPhoen\DoctrineStateMachineBehavior\Entity\StatefulTrait;
class Article implements Stateful
{
// previous code
public function preAccept()
{
// your logic here
}
public function postAccept()
{
// your logic here
}
public function onCanAccept()
{
// your logic here
}
}
namespace Acme\FooBundle\Workflow;
use KPhoen\DoctrineStateMachineBundle\Listener\AbstractSubscriber;
class ArticleSubscriber extends AbstractSubscriber
{
public function supportsObject($object)
{
return $object instanceof \Acme\FooBundle\Entity\Article;
}
public function preAccept()
{
// your logic here
}
public function postAccept()
{
// your logic here
}
public function canAccept()
{
// your logic here
}
}
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new KPhoen\DoctrineStateMachineBundle\KPhoenDoctrineStateMachineBundle(),
// ...
);
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.