From fad09271f6cc355a60e893fac01455a9162c80d7 Mon Sep 17 00:00:00 2001 From: Vova Yatsyuk Date: Fri, 7 Apr 2017 14:56:10 +0300 Subject: [PATCH 1/3] Improved text of exception message When some third-party module has syntax error inside its composer.json, it's very hard to determine which module caused an exception. This PR changes default message with the following: ``` Some_Module's composer.json error: Decoding failed: Syntax error ``` --- lib/internal/Magento/Framework/Module/PackageInfo.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Module/PackageInfo.php b/lib/internal/Magento/Framework/Module/PackageInfo.php index a6a34e227d996..5d52024457657 100644 --- a/lib/internal/Magento/Framework/Module/PackageInfo.php +++ b/lib/internal/Magento/Framework/Module/PackageInfo.php @@ -82,7 +82,15 @@ private function load() foreach ($this->componentRegistrar->getPaths(ComponentRegistrar::MODULE) as $moduleName => $moduleDir) { $key = $moduleDir . '/composer.json'; if (isset($jsonData[$key]) && $jsonData[$key]) { - $packageData = \Zend_Json::decode($jsonData[$key]); + try { + $packageData = \Zend_Json::decode($jsonData[$key]); + } catch (\Zend_Json_Exception $e) { + throw new \Zend_Json_Exception( + sprintf("%s's composer.json error: ", $moduleName) . + $e->getMessage() + ); + } + if (isset($packageData['name'])) { $this->packageModuleMap[$packageData['name']] = $moduleName; } From cbc9f39496ce6d3573b76c4136a37f75261696bf Mon Sep 17 00:00:00 2001 From: Vova Yatsyuk Date: Fri, 7 Apr 2017 22:59:24 +0300 Subject: [PATCH 2/3] Improved code readability - Original exception message moved into 'sprintf' arguments - "'s" suffix removed from module name --- lib/internal/Magento/Framework/Module/PackageInfo.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/internal/Magento/Framework/Module/PackageInfo.php b/lib/internal/Magento/Framework/Module/PackageInfo.php index 5d52024457657..bef401cb7911d 100644 --- a/lib/internal/Magento/Framework/Module/PackageInfo.php +++ b/lib/internal/Magento/Framework/Module/PackageInfo.php @@ -86,8 +86,11 @@ private function load() $packageData = \Zend_Json::decode($jsonData[$key]); } catch (\Zend_Json_Exception $e) { throw new \Zend_Json_Exception( - sprintf("%s's composer.json error: ", $moduleName) . - $e->getMessage() + sprintf( + "%s composer.json error: %s", + $moduleName, + $e->getMessage() + ) ); } From c22243e6559486c723eaa3686431ae12c076393f Mon Sep 17 00:00:00 2001 From: Vova Yatsyuk Date: Sat, 8 Apr 2017 00:25:22 +0300 Subject: [PATCH 3/3] Trailing spaces removed --- lib/internal/Magento/Framework/Module/PackageInfo.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/internal/Magento/Framework/Module/PackageInfo.php b/lib/internal/Magento/Framework/Module/PackageInfo.php index bef401cb7911d..a80d234d43369 100644 --- a/lib/internal/Magento/Framework/Module/PackageInfo.php +++ b/lib/internal/Magento/Framework/Module/PackageInfo.php @@ -87,8 +87,8 @@ private function load() } catch (\Zend_Json_Exception $e) { throw new \Zend_Json_Exception( sprintf( - "%s composer.json error: %s", - $moduleName, + "%s composer.json error: %s", + $moduleName, $e->getMessage() ) );