1
0
mirror of https://github.com/e107inc/e107.git synced 2025-10-13 22:14:51 +02:00

PriorityCallbacks: Execute callbacks before Codeception's

GitPreparer now registers a "priority" register_shutdown_function
callback in order to clean up in case of a fatal error.
This commit is contained in:
Nick Liu
2018-11-01 06:55:26 -05:00
parent 6f416523c3
commit 952c6e5890
4 changed files with 54 additions and 2 deletions

46
lib/PriorityCallbacks.php Normal file
View File

@@ -0,0 +1,46 @@
<?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;
}
private function __clone() {}
private function __sleep() {}
private function __wakeup() {}
}
PriorityCallbacks::instance();