Currently installator is implemented like this:
- have "prepare" method with switch inside to perform step-specific preparations
- have "validate" method with switch inside to perform step-specific form data validation
- have "process" method with switch inside to perform step-specific form data processing
- have arrays, where steps names are grouped into different sets (e.g. clean install, upgrade, license update, etc.)
This solution works, but is terribly hard to maintain and improve.
I propose to:
- move all step related logic to own class (each step would have it's own class)
- clearly define set of wizards, that would consist of instances of involved steps
This would allow invoke needed steps out of context and possible move us one step closer to automated installation idea, when In-Portal can be installed from command line without user interaction (or need of a web browser) at all.