Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
66.67% |
2 / 3 |
CRAP | |
90.91% |
10 / 11 |
| LibXmlExecutionEnvironment | |
0.00% |
0 / 1 |
|
66.67% |
2 / 3 |
3.01 | |
90.91% |
10 / 11 |
| executeCallable | |
100.00% |
1 / 1 |
1 | |
100.00% |
9 / 9 |
|||
| getErrors | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| hasErrors | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| <?php declare(strict_types = 1); | |
| /** | |
| * @author: Doug Wilbourne (dougwilbourne@gmail.com) | |
| * @version 1.0 | |
| */ | |
| namespace pvc\xml\LibXmlWrapper; | |
| /** | |
| * Class LibXmlExecutionEnvironment | |
| */ | |
| class LibXmlExecutionEnvironment | |
| { | |
| /** | |
| * @var array | |
| */ | |
| protected array $errors; | |
| /** | |
| * | |
| * Execute a callable ensuring that the execution will occur inside an environment | |
| * where libxml use internal errors is true. | |
| * | |
| * After executing the callable the value of libxml use internal errors is set to | |
| * previous value. | |
| * @function executeCallable | |
| * @param callable $callable | |
| * @param array $params | |
| * @return mixed | |
| */ | |
| public function executeCallable(callable $callable, array $params = []) | |
| { | |
| $previousErrorReporting = error_reporting(); | |
| error_reporting(0); | |
| // libxml_use_internal_errors(true) disables libxml from throwing errors and allows us to | |
| // retrieve them instead. The function returns the prior setting. | |
| $previousLibXmlUseInternalErrors = libxml_use_internal_errors(true); | |
| libxml_clear_errors(); | |
| $result = call_user_func_array($callable, $params); | |
| $this->errors = libxml_get_errors(); | |
| error_reporting($previousErrorReporting); | |
| libxml_use_internal_errors($previousLibXmlUseInternalErrors); | |
| return $result; | |
| } | |
| /** | |
| * @function getErrors | |
| * @return array | |
| */ | |
| public function getErrors() : array | |
| { | |
| return $this->errors; | |
| } | |
| /** | |
| * @function hasErrors | |
| * @return bool | |
| */ | |
| public function hasErrors() : bool | |
| { | |
| return !empty($this->errors); | |
| } | |
| } |