Zend_Controller_Action_Helper_MultiPageForm provides support for multi-page forms and Post-Redirect-Get with Zend_Form. This proposal heavily based on Simon Mundy's Multiform action helper. Credit to this idea should go to Simon. I merely made it play nice with Zend_Form
Proposed Component Name
Matthew Weier O'Phinney (Zend Liaison)
0.1 - 1 January 2008: Initial revision. (wiki revision: 5)
Zend_Controller_Action_Helper_MultiPageForm provides support for multi-page forms and Post-Redirect-Get with Zend_Form.
This proposal heavily based on Simon Mundy's Multiform action helper. Credit to this idea should go to Simon. I merely made it play nice with Zend_Form
- This component will provide PRG support.
- This component will only support Zend_Form.
- This component will provide multi-page form support.
- This component could use additional back-ends to store the temporary form data
The helper makes use of Zend_Form's subform support to provide multi-page forms. Each subform is essentially a form page.
At the end of the ride all the filtered/validated data is collected and made available to the developer to process it.
A session is used to store the data between requests.
Each subform needs a corresponding controller action. The subform and action have the same name.
The action serves two purposes. It allows custom logic for the data handling and it renders the view.
There is some more functionality that could be added to the helper, but I would like to discuss the options of that first.
One of those possibilities could be the branches idea of Mitchell's form proposal.
Another is the ability to allow unique instances of the same form to be open and filled in simultaneously. However, this would heavily increase the helper's complexity. This probably would be an option for a second iteration.
- Milestone 1: [DONE] Rewrite Simon's helper to specialize it for Zend_Form
- Milestone 2: Discuss points mentioned above.
- Milestone 3: Update proposal to reflect comments and results of discussions.
- Milestone 4: Helper checked in to incubator.
- Milestone 5: Documentation & unit test.
- Milestone 6: Helper accepted into core.
|UC-01: Basic usage|