-
Remove the form data as argument to method
createForm.before:
$form = $flow->createForm($formData);
after:
$form = $flow->createForm();
-
Add the form as argument to method
saveCurrentStepData.before:
$flow->saveCurrentStepData();
after:
$flow->saveCurrentStepData($form);
- The current step number won't be determined by the time
PostBindSavedDataEventis dispatched. SoPostBindFlowEventhas been added and should be used instead ofPostBindSavedDataEventfor code which needs to access the current step number.
-
Add method
getName. Let it return the same valuegetNamedoes for your form type to continue working with the same validation groups.public function getName() { return 'createVehicle'; }
-
Remove property
maxStepsand methodloadStepDescriptions. Replace them with methodssetFormTypeandloadStepsConfig. Add optionflowStepto methodgetFormOptions.before:
protected $maxSteps = 3; protected function loadStepDescriptions() { return array( 'wheels', 'engine', 'confirmation', ); }
after:
use Symfony\Component\Form\FormTypeInterface; /** * @var FormTypeInterface */ protected $formType; public function setFormType(FormTypeInterface $formType) { $this->formType = $formType; } protected function loadStepsConfig() { return array( array( 'label' => 'wheels', 'type' => $this->formType, ), array( 'label' => 'engine', 'type' => $this->formType, ), array( 'label' => 'confirmation', 'type' => $this->formType, ), ); } public function getFormOptions($step, array $options = array()) { $options = parent::getFormOptions($step, $options); $options['flowStep'] = $step; return $options; }
-
Method
getFormOptionsdoesn't receive the form data as an argument anymore. You have to get it if needed. Also, step-based options don't necessarily also need to be available for all subsequent steps anymore.before:
public function getFormOptions($formData, $step, array $options = array()) { $options = parent::getFormOptions($formData, $step, $options); if ($step > 1) { $options['numberOfWheels'] = $formData->getNumberOfWheels(); } return $options; }
after:
public function getFormOptions($step, array $options = array()) { $options = parent::getFormOptions($step, $options); $formData = $this->getFormData(); if ($step === 2) { // if you need this option only for step 2 $options['numberOfWheels'] = $formData->getNumberOfWheels(); } return $options; }
-
Some methods have been renamed to make more clear what they do.
getMaxStepstogetStepCountgetCurrentSteptogetCurrentStepNumbergetCurrentStepDescriptiontogetCurrentStepLabelgetStepDescriptionstogetStepLabelsgetFirstSteptogetFirstStepNumbergetLastSteptogetLastStepNumberhasSkipSteptoisStepSkippedgetRequestedSteptogetRequestedStepNumberdetermineCurrentSteptodetermineCurrentStepNumber
-
One method has been made protected.
applySkipping
-
Some methods' signatures have changed in several ways.
public function createForm($formData, array $options = array())topublic function createForm(array $options = array())public function getFormOptions($formData, $step, array $options = array())topublic function getFormOptions($step, array $options = array())public function determineCurrentStep()toprotected function determineCurrentStepNumber()public function getRequestedStep()toprotected function getRequestedStepNumber()protected function createFormForStep($formData, $step, array $options = array())toprotected function createFormForStep($stepNumber, array $options = array())public function saveCurrentStepData()topublic function saveCurrentStepData(FormInterface $form)public function applyDataFromSavedSteps($formData, array $options = array())toprotected function applyDataFromSavedSteps()
-
Some methods have been removed.
setFormType/getFormTypesetMaxStepssetCurrentStepaddSkipStep/removeSkipSteploadStepDescriptions
-
Some properties have been renamed and/or made private. Use their public accessors instead.
id:setId/getIdformStepKey:setFormStepKey/getFormStepKeyformTransitionKey:setFormTransitionKey/getFormTransitionKeystepDataKey:setStepDataKey/getStepDataKeyvalidationGroupPrefix:setValidationGroupPrefix/getValidationGroupPrefixmaxSteps:getStepCountstepDescriptions:getStepLabelscurrentStep:getCurrentStepNumberrequest:getRequest
-
Some properties have been removed.
formTypeskipSteps
-
After calling
nextStep, now the methodgetCurrentStepNumberwon't return a value greater than whatgetStepCountreturns. This used to be different in 1.x, wheregetCurrentStepreturnedgetMaxSteps() + 1in case the flow is finished.
-
Block
craue_flow_stepDescriptionhas been renamed tocraue_flow_stepLabeland the variable it accesses has been renamed fromstepDescriptiontostepLabel.before:
{{ block('craue_flow_stepDescription') }}after:
{{ block('craue_flow_stepLabel') }}before:
{% block craue_flow_stepDescription %} <span>{{ stepDescription | trans }}</span> {% endblock %}after:
{% block craue_flow_stepLabel %} <span>{{ stepLabel | trans }}</span> {% endblock %}