Ik ben bezig met een error handler en in de php manual staat dat sinds 4.3.0:
Instead of a function name, an array containing an object reference and a method name can also be supplied as the error_handler.
Nu heb ik dus een error handler als class geschreven wat dus alleen op php 4.3.0 en hoger werkt.
Het volgende heb ik bedacht als work around
en de work around functie:
Met ErrorHandler de class waar mijn errorhandler in zit.
Theoretisch zou dit moeten werken maar ik heb geen idee of het ook in de praktijk werkt (heb alleen PHP 5.0.4 als test omgeving).
Heeft iemand hier ervaring mee en denken jullie dat het zo zou moeten werken voor PHP versies < 4.3.0?
Instead of a function name, an array containing an object reference and a method name can also be supplied as the error_handler.
Nu heb ik dus een error handler als class geschreven wat dus alleen op php 4.3.0 en hoger werkt.
Het volgende heb ik bedacht als work around
PHP:
1
2
3
4
5
| if (version_compare(PHP_VERSION, "4.3.0", ">=")) { $oldErrorHandler = set_error_handler(array($oErrorHandler, 'MyErrorhandler')); } else { $oldErrorHandler = set_error_handler('MyErrorhandler'); } |
en de work around functie:
PHP:
1
2
3
4
5
6
7
8
| function MyErrorhandler($iErrNo, $sErrStr, $sErrFile, $iErrLine, $aContext) { global $oTemplate; static $oErrorHandler; if (!isset($oErrorHandler)) { $oErrorHandler = new ErrorHandler($oTemplate,'error_message.tpl'); } $oErrorHandler->MyErrorhandler($iErrNo, $sErrStr, $sErrFile, $iErrLine, $aContext); } |
Met ErrorHandler de class waar mijn errorhandler in zit.
Theoretisch zou dit moeten werken maar ik heb geen idee of het ook in de praktijk werkt (heb alleen PHP 5.0.4 als test omgeving).
Heeft iemand hier ervaring mee en denken jullie dat het zo zou moeten werken voor PHP versies < 4.3.0?