diff options
| author | Nils Adermann <naderman@naderman.de> | 2011-08-29 17:17:40 -0400 |
|---|---|---|
| committer | Nils Adermann <naderman@naderman.de> | 2011-09-29 15:42:48 +0200 |
| commit | c7a986eccdac183cc81b3da486092f4ab82109ba (patch) | |
| tree | 6a0d855eda1a083fb94d09b0d60bce530805c868 /phpBB/includes/extension/interface.php | |
| parent | 897063d3e269a7c11ef6d6602abc37ec30266a72 (diff) | |
| download | forums-c7a986eccdac183cc81b3da486092f4ab82109ba.tar forums-c7a986eccdac183cc81b3da486092f4ab82109ba.tar.gz forums-c7a986eccdac183cc81b3da486092f4ab82109ba.tar.bz2 forums-c7a986eccdac183cc81b3da486092f4ab82109ba.tar.xz forums-c7a986eccdac183cc81b3da486092f4ab82109ba.zip | |
[feature/extension-manager] Use an incremental process for enable and purge
The enable or purge operation of an extension could take a long time if an
expensive operation needs to be executed on a large set of data. To allow
this to succeed from a web interface with max_execution_time set in the
webserver's php configuration, subsequent requests must continue the
operation started earlier. So individual enable and purge implementations
must be able to spread their work across multiple steps.
PHPBB3-10323
Diffstat (limited to 'phpBB/includes/extension/interface.php')
| -rw-r--r-- | phpBB/includes/extension/interface.php | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/phpBB/includes/extension/interface.php b/phpBB/includes/extension/interface.php index 40a5a066a3..7d0ecd72c7 100644 --- a/phpBB/includes/extension/interface.php +++ b/phpBB/includes/extension/interface.php @@ -16,12 +16,47 @@ if (!defined('IN_PHPBB')) } /** +* The interface extension meta classes have to implement to run custom code +* on enable/disable/purge. * * @package extension */ interface phpbb_extension_interface { - public function enable(); + /** + * enable_step is executed on enabling an extension until it returns false. + * + * Calls to this function can be made in subsequent requests, when the + * function is invoked through a webserver with a too low max_execution_time. + * + * @param mixed $old_state The return value of the previous call + * of this method, or false on the first call + * @return mixed Returns false after last step, otherwise + * temporary state which is passed as an + * argument to the next step + */ + public function enable_step($old_state); + + /** + * Disables the extension. + * + * Must be a quick operation, that finishes within max_execution_time. + * + * @return null + */ public function disable(); - public function purge(); + + /** + * purge_step is executed on purging an extension until it returns false. + * + * Calls to this function can be made in subsequent requests, when the + * function is invoked through a webserver with a too low max_execution_time. + * + * @param mixed $old_state The return value of the previous call + * of this method, or false on the first call + * @return mixed Returns false after last step, otherwise + * temporary state which is passed as an + * argument to the next step + */ + public function purge_step($old_state); } |
