Currently, the PrismManager class needs to be extended for every new provider, which is problematic from a software engineering point of view.
Instead, the PrismManager should:
- Resolve provider by name (lower case) only and deprecate provider enum
- Resolve the class name by class_exists() and new operator
- Pass the config array as single parameter to each provider
Then, it would be possible to add new providers to Prism in separate packages.