I have encountered on several occasions an extensive layering of components that have ancestors that need to be customized depending on the circumstances.
Here is a brief "realish" example of what I mean:
* Module is the main component and created by our MVC view.
* Module contains a child component called Designer.
* Designer contains a child component called DesignerWindow.
* DesignerWindow contains a child component called DesignerForm.
* DesignerForm has a plugin called InsertLink.
* InsertLink contains a child component called SearchWindow.
* SearchWindow contains a child component called SearchGrid.
* SearchGrid has a url config option that defaults to '/module/search'
The linear hierarchy is:
Module > Designer > DesignerWindow > DesignerForm > InsertLink > SearchWindow > SearchGrid.
Now if a similar hierarchy is ever reused by Module BB but the url in the SearchGrid needs to change, then that config needs to be defined and propagated down the entire tree! That type of problem has plagued me for quite some time. Most of my modules are not that deep (3 layers on average) but I have a situation with 7 layers as above that has me spinning.
Does anybody have a better option than this? How do the other big apps tackle this? Thanks everybody!