From e6f64c609e6efb46ff46335c1bf4515e70d442ee Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 25 Apr 2020 11:04:09 +0100 Subject: [PATCH 1/2] bootstrap: avoid making COMPOSER_AUTOLOADER_PATH having a possible false type --- src/pocketmine/PocketMine.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pocketmine/PocketMine.php b/src/pocketmine/PocketMine.php index 1a5c1a1c4..cc6d73343 100644 --- a/src/pocketmine/PocketMine.php +++ b/src/pocketmine/PocketMine.php @@ -177,15 +177,14 @@ namespace pocketmine { }else{ $bootstrap = dirname(__FILE__, 3) . '/vendor/autoload.php'; } - define('pocketmine\COMPOSER_AUTOLOADER_PATH', $bootstrap); - if(\pocketmine\COMPOSER_AUTOLOADER_PATH !== false and is_file(\pocketmine\COMPOSER_AUTOLOADER_PATH)){ - require_once(\pocketmine\COMPOSER_AUTOLOADER_PATH); - }else{ + if($bootstrap === false or !is_file($bootstrap)){ critical_error("Composer autoloader not found at " . $bootstrap); critical_error("Please install/update Composer dependencies or use provided builds."); exit(1); } + define('pocketmine\COMPOSER_AUTOLOADER_PATH', $bootstrap); + require_once(\pocketmine\COMPOSER_AUTOLOADER_PATH); set_error_handler([Utils::class, 'errorExceptionHandler']); From da9731ef59986e8e3266dca95bb0014472395a6a Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 25 Apr 2020 11:07:05 +0100 Subject: [PATCH 2/2] phpstan: add stub defines to improve analysis --- phpstan.neon.dist | 25 ------------------------- tests/phpstan/bootstrap.php | 10 +++++++++- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 5598dc316..8f9715913 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -163,28 +163,3 @@ parameters: message: "#^Constructor of class pocketmine\\\\scheduler\\\\TaskScheduler has an unused parameter \\$logger\\.$#" count: 1 path: src/pocketmine/scheduler/TaskScheduler.php - - - - message: "#^Constant pocketmine\\\\COMPOSER_AUTOLOADER_PATH not found\\.$#" - path: src - - - - message: "#^Constant pocketmine\\\\DATA not found\\.$#" - path: src - - - - message: "#^Constant pocketmine\\\\GIT_COMMIT not found\\.$#" - path: src - - - - message: "#^Constant pocketmine\\\\PLUGIN_PATH not found\\.$#" - path: src - - - - message: "#^Constant pocketmine\\\\START_TIME not found\\.$#" - path: src - - - - message: "#^Constant pocketmine\\\\VERSION not found\\.$#" - path: src - diff --git a/tests/phpstan/bootstrap.php b/tests/phpstan/bootstrap.php index 10b2da0fc..b852e304f 100644 --- a/tests/phpstan/bootstrap.php +++ b/tests/phpstan/bootstrap.php @@ -21,4 +21,12 @@ declare(strict_types=1); -define('pocketmine\_PHPSTAN_ANALYSIS', true); \ No newline at end of file +define('pocketmine\_PHPSTAN_ANALYSIS', true); + +//TODO: these need to be defined properly or removed +define('pocketmine\COMPOSER_AUTOLOADER_PATH', dirname(__DIR__, 2) . '/vendor/autoload.php'); +define('pocketmine\DATA', ''); +define('pocketmine\GIT_COMMIT', str_repeat('00', 20)); +define('pocketmine\PLUGIN_PATH', ''); +define('pocketmine\START_TIME', microtime(true)); +define('pocketmine\VERSION', '9.9.9');