aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-01-17 00:14:47 -0800
committerzotlabs <mike@macgirvin.com>2017-01-17 00:14:47 -0800
commit335d9af8dc4b02f8ec4017d30525a65e93c40eb2 (patch)
treef3f561a5a2e23386d416e328e4c2d9f788a9cf47
parent8478ecc6755eefb1977566c8f4bbbd603d5b37db (diff)
downloadvolse-hubzilla-335d9af8dc4b02f8ec4017d30525a65e93c40eb2.tar.gz
volse-hubzilla-335d9af8dc4b02f8ec4017d30525a65e93c40eb2.tar.bz2
volse-hubzilla-335d9af8dc4b02f8ec4017d30525a65e93c40eb2.zip
daemon_addon hook - lets plugins create custom background processes.
-rw-r--r--Zotlabs/Daemon/Addon.php14
-rw-r--r--doc/hook/daemon_addon.bb15
-rw-r--r--doc/hooklist.bb3
3 files changed, 32 insertions, 0 deletions
diff --git a/Zotlabs/Daemon/Addon.php b/Zotlabs/Daemon/Addon.php
new file mode 100644
index 000000000..c2889e596
--- /dev/null
+++ b/Zotlabs/Daemon/Addon.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Zotlabs\Daemon;
+
+require_once('include/zot.php');
+
+class Addon {
+
+ static public function run($argc,$argv) {
+
+ call_hooks('daemon_addon',$argv);
+
+ }
+}
diff --git a/doc/hook/daemon_addon.bb b/doc/hook/daemon_addon.bb
new file mode 100644
index 000000000..b60b25748
--- /dev/null
+++ b/doc/hook/daemon_addon.bb
@@ -0,0 +1,15 @@
+[h2]daemon_addon[/h2]
+
+
+A foreground plugin can create a background process by invoking:
+
+[code]
+\Zotlabs\Daemon\Master::Summon([ 'Addon', 'myplugin', 'something' ]);
+[/code]
+
+This starts up a background process (called 'Addon') specifically for addons to use.
+
+Then if your plugin is also catching the daemon_addon hook that handler will be called with the
+argv array of the background process. In this case [ 'myplugin', 'something' ];
+
+We recommend using this convention so that plugins can share this hook without causing conflicts; that is check to see if your plugin is the first array argument and if not, return from the hook. Otherwise you can initiate background processing. Something to remember is that during background processes there is no session. You are detached from the web page which created the background process. \ No newline at end of file
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index 863824590..c965b7c44 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -148,6 +148,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/crypto_methods]crypto_methods[/zrl]
Called when generating a list of crypto algorithms in the locally preferred order
+[zrl=[baseurl]/help/hook/daemon_addon]daemon_addon[/zrl]
+ Called when invoking the extensible background daemon
+
[zrl=[baseurl]/help/hook/directory_item]directory_item[/zrl]
Called when generating a directory listing for display