#3856 - Addon isolation via virtual subtrees

Identifier #3856
Issue type Feature request or suggestion
Title Addon isolation via virtual subtrees
Status Open
Tags

Roadmap: Over the horizon (custom)

Handling member Deleted
Addon core
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.
Steps to reproduce

Related to

#3147 - Review of cloud filesystem support

#3049 - Major upgrade reimagining (including hypervisor, and default theme improvements)

Funded? No
The system will post a comment when this issue is modified (e.g., status changes). To be notified of this, click "Enable comment notifications".

Rating

Unrated