View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003856||Composr||core||public||2019-07-22 19:15||2020-02-23 00:02|
|Reporter||Chris Graham||Assigned To|
|Fixed in Version|
|Summary||0003856: Addon isolation via virtual subtrees|
|Description||Composr installs all addons into a shared file tree.|
This is good to create one maximally simple integrated system, and good for performance.
There are cases where you may instead want to keep addons apart:
1) so that they can easily be enabled/disabled
2) so that conflicting overridden files don't overwrite each other
3) just so you can better see what files are in an addon without having to reference the addon_registry hook (perhaps in your IDE for example)
Instead we could optionally have many virtual subtrees automatically merged into the main tree using a PHP virtual filesystem.
I think new addons could be picked up automatically be analysing the subtree. This would be off by default, except perhaps in development mode.
Also when addons are installed it could give the option to install them into a subtree instead of the main tree, with a precedence.
Regardless of whether addons are installed in the main tree or a virtual subtree, a virtual filesystem would allow us to toggle addons on/off.
Regarding point '2', the system of setting addon precedence is a basic resolution to it. But it's not a perfect solution. .php and .ini files can be merged by Composr at a function/class/string level. This is only good if the same functions aren't overridden of course. And for .tpl files, there's no way to merge. What would be really smart is if Composr could diff overrides against a .editfrom file, and then apply themselves as patches to the original files. It would not be perfect, but it'd help.
|Tags||No tags attached.|
|Time estimation (hours)||100|
Perhaps we wouldn't give the option for addons to be in a virtual subtree - they always would be, including on git. That would definitely make things less overwhelming to developers. Right now there are a lot of files under sources/.
We could make it an option in the installer whether to have a small number of important addons enabled, or all bundled addons. That way new users can avoid being overwhelmed.