diff --git a/composer.json b/composer.json index 9f9fccd28..e2ca39800 100644 --- a/composer.json +++ b/composer.json @@ -41,6 +41,7 @@ "pocketmine/classloader": "dev-master", "pocketmine/log-pthreads": "dev-master", "pocketmine/callback-validator": "^1.0.1", + "pocketmine/errorhandler": "^0.1.0", "adhocore/json-comment": "^0.1.0", "particle/validator": "^2.3", "netresearch/jsonmapper": "^2.0", diff --git a/composer.lock b/composer.lock index ce5cec32f..27f321111 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "da1e60f0dfc0109a44d3a47b311ae8e5", + "content-hash": "e5a2f9b7992a8ed0050a9745ec04e569", "packages": [ { "name": "adhocore/json-comment", @@ -465,6 +465,40 @@ "description": "Ad-hoc autoloading components used by PocketMine-MP", "time": "2020-01-31T14:26:22+00:00" }, + { + "name": "pocketmine/errorhandler", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/pmmp/ErrorHandler.git", + "reference": "0503a1929a3934e754114814509ff9152f4908eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/ErrorHandler/zipball/0503a1929a3934e754114814509ff9152f4908eb", + "reference": "0503a1929a3934e754114814509ff9152f4908eb", + "shasum": "" + }, + "require": { + "php": "^7.2" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.23", + "phpstan/phpstan-strict-rules": "^0.12.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "pocketmine\\errorhandler\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "Utilities to handle nasty PHP E_* errors in a usable way", + "time": "2020-05-10T11:45:02+00:00" + }, { "name": "pocketmine/log", "version": "dev-master", diff --git a/src/CrashDump.php b/src/CrashDump.php index 632cf59bc..d3ca48cce 100644 --- a/src/CrashDump.php +++ b/src/CrashDump.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace pocketmine; use PackageVersions\Versions; +use pocketmine\errorhandler\ErrorTypeToStringMap; use pocketmine\network\mcpe\protocol\ProtocolInfo; use pocketmine\plugin\PluginBase; use pocketmine\plugin\PluginManager; @@ -220,7 +221,7 @@ class CrashDump{ $error["fullFile"] = $error["file"]; $error["file"] = Filesystem::cleanPath($error["file"]); try{ - $error["type"] = \ErrorUtils::errorTypeToString($error["type"]); + $error["type"] = ErrorTypeToStringMap::get($error["type"]); }catch(\InvalidArgumentException $e){ //pass } diff --git a/src/PocketMine.php b/src/PocketMine.php index 3830c2ffe..ddaa3bcc3 100644 --- a/src/PocketMine.php +++ b/src/PocketMine.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace pocketmine { + use pocketmine\errorhandler\ErrorToExceptionHandler; use pocketmine\thread\ThreadManager; use pocketmine\utils\Filesystem; use pocketmine\utils\Git; @@ -194,7 +195,7 @@ namespace pocketmine { \parallel\bootstrap(\pocketmine\COMPOSER_AUTOLOADER_PATH); } - \ErrorUtils::setErrorExceptionHandler(); + ErrorToExceptionHandler::set(); $version = new VersionString(\pocketmine\BASE_VERSION, \pocketmine\IS_DEVELOPMENT_BUILD, \pocketmine\BUILD_NUMBER); define('pocketmine\VERSION', $version->getFullVersion(true)); diff --git a/src/thread/CommonThreadPartsTrait.php b/src/thread/CommonThreadPartsTrait.php index e6cd6af54..7ce63983a 100644 --- a/src/thread/CommonThreadPartsTrait.php +++ b/src/thread/CommonThreadPartsTrait.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace pocketmine\thread; +use pocketmine\errorhandler\ErrorToExceptionHandler; use pocketmine\Server; use function error_reporting; @@ -68,7 +69,7 @@ trait CommonThreadPartsTrait{ error_reporting(-1); $this->registerClassLoader(); //set this after the autoloader is registered - \ErrorUtils::setErrorExceptionHandler(); + ErrorToExceptionHandler::set(); $this->onRun(); } diff --git a/src/utils/MainLogger.php b/src/utils/MainLogger.php index 120768cca..ed3abded9 100644 --- a/src/utils/MainLogger.php +++ b/src/utils/MainLogger.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace pocketmine\utils; use LogLevel; +use pocketmine\errorhandler\ErrorTypeToStringMap; use pocketmine\thread\Thread; use pocketmine\thread\Worker; use function fclose; @@ -170,7 +171,7 @@ class MainLogger extends \AttachableThreadedLogger implements \BufferedLogger{ $errno = $e->getCode(); try{ - $errno = \ErrorUtils::errorTypeToString($errno); + $errno = ErrorTypeToStringMap::get($errno); }catch(\InvalidArgumentException $e){ //pass }