[MODULES] Add function to defer module initialization and cleanup to plugin and component. Add example in Avatar component

Forward onInitializeModule to onInitializePlugin if the component is a plugin
This commit is contained in:
2021-08-22 13:33:27 +01:00
parent bda839be7b
commit 033c4db914
2 changed files with 25 additions and 0 deletions

View File

@@ -60,4 +60,25 @@ abstract class Module
}
return $obj;
}
// ------- Module initialize and cleanup ----------
private function defer(string $cycle)
{
$type = ucfirst(static::MODULE_TYPE);
if (method_exists($this, $method = "on{$cycle}{$type}")) {
$this->{$method}();
}
}
// Can't use __call or it won't be found by our event function finder
public function onInitializeModule()
{
$this->defer('Initialize');
}
public function onCleanupModule()
{
$this->defer('Cleanup');
}
}