2017 © Pedro Peláez
 

symfony-bundle step-bundle

This is a Symfony2 bundle that contains the step of a workflow system.

image

kitpages/step-bundle

This is a Symfony2 bundle that contains the step of a workflow system.

  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

KitpagesStepBundle

Build Status, (*1)

This bundle provides a step system for a future workflow system, (*2)

Versions

11/02/2014 : v1.1.0, (*3)

  • no BC Break
  • new : stopwatch to see step usages in the timeline of the SF2 debug toolbar
  • enh : more unit tests

05/12/2013 : v1.0.0, (*4)

  • major refactor and separation between chain and steps

Actual state

This bundle is stable, tested and under travis-ci., (*5)

Installation

Add KitpagesStepBundle in your composer.json, (*6)

{
    "require": {
        "kitpages/step-bundle": "*"
    }
}

Now tell composer to download the bundle by running the step:, (*7)

``` bash $ php composer.phar update kitpages/step-bundle, (*8)


AppKernel.php ``` php $bundles = array( ... new Kitpages\StepBundle\KitpagesStepBundle(), );

create a step

Each step must implements StepInterface or extend StepAbstract. The DIC is injected to the step with the method setContainer., (*9)

<?php
namespace Kitpages\StepBundle\Tests\Sample;

use Kitpages\StepBundle\Step\StepAbstract;

class StepSample extends StepAbstract
{
    public function execute() {
        // do whatever you want
        return $whatever;
    }
}

Configuration example

The following configuration defines 2 steps :, (*10)

  • kitpagesMep : a production start
  • kitpagesCms : instantiate a KitpagesCms

Let's see the configuration in config.yml, (*11)

``` yaml kitpages_step: shared_step_list: CodeCopy: class: '\Kitpages\StepBundle\Step\CodeCopy' parameter_list: src_dir: '/home/webadmin/htdocs/dev/www.kitpages.com' dest_dir: '/home/webadmin/htdocs/prod/www.kitpages.com' help: short: copy a directory to another complete: | This step copies a directory to another @param string return string returned by the step @service listener service used for xxx @event:returnValue string @return boolean true if ok or false, (*12)

    CodeCopyPreProd:
        parent_shared_step: CodeCopy
        parameter_list:
            dest_dir: '/home/webadmin/htdocs/pre-prod/www.kitpages.com'
    GitKitpages:
        class: '\Kitpages\StepBundle\Step\GitKitpages'
        parameter_list:
            url: git.kitpages.com
        service_list:
            logger: logger

## using app/console ### run a step with app/console ``` bash # run a step with parameters defined in config.yml php app/console kitpages:step:run-step CodeCopy # run a step with custom parameters php app/console kitpages:step:run-step CodeCopy --p=src_dir:'/home/webadmin/src' --p=dest_dir:'/tmp/destDir'

run a step with PHP

``` php $stepKitpages = $this->get("kitpages_step.step"); $codeCopyStepKitpages = $stepKitpages->getStep('CodeCopy'); $codeCopyStepKitpages->setParameter('src_dir', '/home/webadmin/htdocs/dev/cms2.kitpages.com');, (*13)

$codeCopyStepKitpages->execute();, (*14)


## Using events With events, you can alter the way each step is executed. You can : * prevent the step from running the execute() method. $event->preventDefault() * alter the step before or after the execution * change return value * ... Create a listener : ```php namespace Foo\Bar; class StepListener { public function onStepExecute(StepEvent $event) { $step = $event->getStep(); // do whatever you want with the current step // $event->preventDefault(); // $event->stopPropagation(); // log something ? } }

register listener :, (*15)

services:
    stepListener:
        class: Foo\Bar\StepListener
        tags:
            - { name: kernel.event_listener, event: kitpages_step.on_step_execute, method: onStepExecute }

``` php use Kitpages\StepBundle\Step\StepEvent; [...], (*16)

$event = new StepEvent();, (*17)

$stepKitpages = $this->get("kitpages_step.step"); $codeCopyStepKitpages = $stepKitpages->getStep('CodeCopy'); $codeCopyStepKitpages->setParameter('src_dir', '/home/webadmin/htdocs/dev/cms2.kitpages.com');, (*18)

$codeCopyStepKitpages->execute($event); ```, (*19)

old versions before fork

04/23/2013 : v1.4.0 help system steps 04/18/2013 : v1.3.0 step inheritance with the optional 02/19/2013 : v1.2.0 step parameter template rendering 02/18/2013 : v1.1.0 steps are not container aware anymore. Services are injected in config.yml 02/18/2013 : v1.0.0 first stable version, (*20)

The Versions

31/08 2015

dev-master

9999999-dev https://github.com/kitpages/KitpagesStepBundle

This is a Symfony2 bundle that contains the step of a workflow system.

  Sources   Download

MIT

The Requires

 

The Development Requires

workflow step

31/08 2015

dev-cached-proxy-generation

dev-cached-proxy-generation https://github.com/kitpages/KitpagesStepBundle

This is a Symfony2 bundle that contains the step of a workflow system.

  Sources   Download

MIT

The Requires

 

The Development Requires

workflow step

11/02 2014

v1.1.0

1.1.0.0 https://github.com/kitpages/KitpagesStepBundle

This is a Symfony2 bundle that contains the step of a workflow system.

  Sources   Download

MIT

The Requires

 

The Development Requires

workflow step

05/12 2013

v1.0.0

1.0.0.0 https://github.com/kitpages/KitpagesStepBundle

This is a Symfony2 bundle that contains the step of a workflow system.

  Sources   Download

MIT

The Requires

 

The Development Requires

workflow step