Problem: There's no clean way to extend the manager without actually extending the class itself. This leads to the child class' boot() method having to call the parent::boot() in order to maintain existing functionality and introduce any new functionality. While this is still code and therefore better than a config approach, being able to register extensions to the manager class without having to reference the parent::boot() while simultaneously being able to extend the boot process would be better. Additionally such a solution would allow for better class encapsulation of related boot extensions making micro service development and vertical slicing of an application more maintainable.
Solution:
- Add an interface for
Extension
- Add
extend() method to Manager
- Add a conditional
bootExtensions() call to boot() method of Manager
Note: This should be implemented such that it is not a breaking change to 1.0 behavior but simple an improvement for 1.1 integrators to make use of.
Problem: There's no clean way to extend the manager without actually extending the class itself. This leads to the child class'
boot()method having to call theparent::boot()in order to maintain existing functionality and introduce any new functionality. While this is still code and therefore better than a config approach, being able to register extensions to the manager class without having to reference theparent::boot()while simultaneously being able to extend the boot process would be better. Additionally such a solution would allow for better class encapsulation of related boot extensions making micro service development and vertical slicing of an application more maintainable.Solution:
Extensionextend()method toManagerbootExtensions()call toboot()method ofManagerNote: This should be implemented such that it is not a breaking change to
1.0behavior but simple an improvement for1.1integrators to make use of.