![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/ |
<?php class wfShutdownFunction { private $callable; private $priority; public function __construct($callable, $priority) { $this->callable = $callable; $this->priority = $priority; } public function invoke() { call_user_func($this->callable); } public function getPriority() { return $this->priority; } public function __wakeup() { $this->callable = function() {}; } } class wfShutdownRegistry { private static $instance = null; const PRIORITY_LAST = 100; private $functions = array(); private $registered = false; public function handleShutdown() { usort($this->functions, function ($a, $b) { return $a->getPriority() - $b->getPriority(); }); foreach ($this->functions as $function) { $function->invoke(); } } public function register($function, $priority = 50) { array_push($this->functions, new wfShutdownFunction($function, $priority)); $this->registerSelf(); } private function registerSelf() { if (!$this->registered) { register_shutdown_function(array($this, 'handleShutdown')); $this->registered = true; } } public function __wakeup() { $this->functions = array(); $this->registered = false; } public static function getDefaultInstance() { if (self::$instance === null) self::$instance = new self(); return self::$instance; } }