1. Go to this page and download the library: Download yokai/sonata-workflow 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/ */
yokai / sonata-workflow example snippets
// src/Admin/Controller/PullRequestController.php
declare(strict_types=1);
namespace App\Admin\Controller;
use App\Entity\PullRequest;
use App\Form\PullRequest\StartReviewType;
use Sonata\AdminBundle\Controller\CRUDController;
use Symfony\Component\HttpFoundation\Response;
use Yokai\SonataWorkflow\Controller\WorkflowControllerTrait;
class PullRequestController extends CRUDController
{
use WorkflowControllerTrait;
protected function preApplyTransition(object $object, string $transition): ?Response
{
switch ($transition) {
case 'start_review':
return $this->startReview($object, $transition);
}
return null;
}
protected function startReview(PullRequest $object, string $transition): ?Response
{
$form = $this->createForm(
StartReviewType::class,
[],
[
'action' => $this->admin->generateObjectUrl(
'workflow_apply_transition',
$object,
['transition' => $transition]
),
]
);
$form->handleRequest($this->getRequest());
if (!$form->isSubmitted() || !$form->isValid()) {
$formView = $form->createView();
return $this->renderWithExtraParams('admin/pull-request/start-review.html.twig', [
'action' => 'edit',
'form' => $formView,
'object' => $object,
'objectId' => $this->admin->getNormalizedIdentifier($object),
], null);
}
$data = $form->getData();
// do something with the submitted data before returning null to continue applying transition
return null;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.