We have a few checks (e.g. if curl is installed, what PHP version is used, etc.) that are performed during In-Portal install process to avoid issues that In-Portal can be installed on the web server, where it can't work without errors.
Problem with current implementation is that it's tied to installation script and not easily extensible.
I propose to implement each prerequisite check as a separate class, that:
- will have method to run the check
- will have method that would return text, that explains on how to solve the problem, when check fails
- will have method telling if a check is required to pass or not
Then thanks to automatic class discovery feature we can scan all possible checks (and each module can add it's own checks if needed) and dynamically build corresponding installation step template.