1
0
mirror of https://github.com/e107inc/e107.git synced 2025-02-19 22:14:45 +01:00
php-e107/e107_tests/lib/PriorityCallbacks.php
2020-11-30 12:55:00 +01:00

46 lines
794 B
PHP

<?php
/**
* Execute callbacks before Codeception does
*/
class PriorityCallbacks
{
/** @var array */
private $shutdown_functions = [];
private function __construct()
{
register_shutdown_function([$this, 'call_shutdown_functions']);
}
public static function instance()
{
static $instance = null;
if (!$instance instanceof self)
{
$instance = new static();
}
return $instance;
}
public function call_shutdown_functions()
{
foreach ($this->shutdown_functions as $shutdown_function)
{
call_user_func($shutdown_function);
}
}
public function register_shutdown_function($callable)
{
$this->shutdown_functions[] = $callable;
}
public function __clone() {}
public function __sleep() {}
public function __wakeup() {}
}
PriorityCallbacks::instance();