rfc:improved_error_callback_mechanism
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
rfc:improved_error_callback_mechanism [2015/04/08 00:26] – changed modify date patrickallaert | rfc:improved_error_callback_mechanism [2015/04/23 09:17] – Added hook's SUCCESS/FAILURE behaviour oliviergarcia | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== PHP RFC: Improved Error Callback Mechanism ====== | ====== PHP RFC: Improved Error Callback Mechanism ====== | ||
- | * Version: 0.2 | + | * Version: 0.3 |
* Create Date: 2015-03-13 | * Create Date: 2015-03-13 | ||
- | * Modify Date: 2015-04-08 | + | * Modify Date: 2015-04-23 |
* Author: Patrick Allaert < | * Author: Patrick Allaert < | ||
* Status: Under discussion | * Status: Under discussion | ||
Line 22: | Line 22: | ||
===== Proposal ===== | ===== Proposal ===== | ||
- | We propose to split '' | + | We propose to split '' |
- | - Display the error (**display** | + | - Display the error (**display** |
- | - Log the error (**log** | + | - Log the error (**log** |
- | - Do additional processing if needed (**process** | + | - Do additional processing if needed (**process** |
- | - Check if the error is recoverable and bail out if needed (**bailout** | + | - Check if the error is recoverable and bail out if needed (**bailout** |
- | We believe that there is no interesting use case for hooking the other existing | + | We believe that there is no interesting use case for hooking the other existing |
- | An extension that want to extend one of the part can do it so by **appending** a hook: | + | An extension that want to extend one of the category |
<code c> | <code c> | ||
- | | + | |
/* Do some logging with error line number, filename, message, ... */ | /* Do some logging with error line number, filename, message, ... */ | ||
} | } | ||
Line 39: | Line 39: | ||
</ | </ | ||
- | **Prepending** is also possible in the case one want to execute a hook before the other of the same category: | + | Each hook must return either '' |
+ | |||
+ | **Prepending** is also possible in the case one want to execute a hook before the others | ||
<code c> | <code c> | ||
- | PHP_ERROR_HOOK_API my_logging_hook(PHP_ERROR_HOOK_ARGS) { | ||
- | /* Do some logging with error line number, filename, message, ... */ | ||
- | } | ||
- | |||
zend_prepend_error_hook(E_HOOK_LOG, | zend_prepend_error_hook(E_HOOK_LOG, | ||
</ | </ | ||
- | An extension that want to **clear** | + | An extension that want to **clear** |
<code c> | <code c> | ||
zend_clear_error_hook(E_HOOK_DISPLAY); | zend_clear_error_hook(E_HOOK_DISPLAY); | ||
</ | </ | ||
+ | '' | ||
- | '' | + | The modification |
==== Overview of the improved '' | ==== Overview of the improved '' | ||
Line 82: | Line 81: | ||
==== Open discussions point ==== | ==== Open discussions point ==== | ||
- | Should the implementation contain pre and post hooks that would be empty by default? It would enable extensions to do some treatment at the early/ | + | Should the implementation |
===== Backward incompatible changes ===== | ===== Backward incompatible changes ===== | ||
Line 102: | Line 101: | ||
===== Patches and tests ===== | ===== Patches and tests ===== | ||
- | The patch is under creation | + | The patch has been created |
+ | |||
+ | PR available at: https:// | ||
===== Implementation ===== | ===== Implementation ===== | ||
Line 117: | Line 118: | ||
==== User land changes ==== | ==== User land changes ==== | ||
- | It may be interesting to provide changes in the userland so that a user function can be registered as a part of one of those hooks. However, that would complicate this RFC and we consider this as out of the actual scope while considering it as a future enhancement. | + | It may be interesting to provide changes in the userland so that a user function can be registered as a category |
===== Versions ===== | ===== Versions ===== | ||
* 0.1: Initial RFC (2015-03-13) | * 0.1: Initial RFC (2015-03-13) | ||
- | * 0.2: Changing API a bit + possibility to prepend hooks as suggested by Derick + fixing E_HOOK_PROCESS hooks placement (2015-04-07) | + | * 0.2: Changing API slightly |
+ | * 0.3: Added hook's SUCCESS/ |
rfc/improved_error_callback_mechanism.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1