diff --git a/Build/UnitTests.xml b/Build/UnitTests.xml
deleted file mode 100644
index 9825de0b..00000000
--- a/Build/UnitTests.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
- ../Tests/Unit/
-
-
-
-
- ../Classes/
-
-
- ../Classes/Widgets
-
-
-
diff --git a/Build/UnitTestsBootstrap.php b/Build/UnitTestsBootstrap.php
index d2cd5570..26a03f23 100644
--- a/Build/UnitTestsBootstrap.php
+++ b/Build/UnitTestsBootstrap.php
@@ -1,5 +1,18 @@
defineSitePath();
- $requestType = \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_BE | \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_CLI;
+ $requestType = SystemEnvironmentBuilder::REQUESTTYPE_BE | SystemEnvironmentBuilder::REQUESTTYPE_CLI;
\TYPO3\TestingFramework\Core\SystemEnvironmentBuilder::run(0, $requestType);
- $testbase->createDirectory(\TYPO3\CMS\Core\Core\Environment::getPublicPath() . '/typo3conf/ext');
- $testbase->createDirectory(\TYPO3\CMS\Core\Core\Environment::getPublicPath() . '/typo3temp/assets');
- $testbase->createDirectory(\TYPO3\CMS\Core\Core\Environment::getPublicPath() . '/typo3temp/var/tests');
- $testbase->createDirectory(\TYPO3\CMS\Core\Core\Environment::getPublicPath() . '/typo3temp/var/transient');
+ $testbase->createDirectory(Environment::getPublicPath() . '/typo3conf/ext');
+ $testbase->createDirectory(Environment::getPublicPath() . '/typo3temp/assets');
+ $testbase->createDirectory(Environment::getPublicPath() . '/typo3temp/var/tests');
+ $testbase->createDirectory(Environment::getPublicPath() . '/typo3temp/var/transient');
// Retrieve an instance of class loader and inject to core bootstrap
$classLoader = require $testbase->getPackagesPath() . '/autoload.php';
- \TYPO3\CMS\Core\Core\Bootstrap::initializeClassLoader($classLoader);
+ Bootstrap::initializeClassLoader($classLoader);
// Initialize default TYPO3_CONF_VARS
- $configurationManager = new \TYPO3\CMS\Core\Configuration\ConfigurationManager();
+ $configurationManager = new ConfigurationManager();
$GLOBALS['TYPO3_CONF_VARS'] = $configurationManager->getDefaultConfiguration();
- $cache = new \TYPO3\CMS\Core\Cache\Frontend\PhpFrontend(
+ $cache = new PhpFrontend(
'core',
- new \TYPO3\CMS\Core\Cache\Backend\NullBackend('production', [])
+ new NullBackend('production', [])
);
// Set all packages to active
- if (interface_exists(\TYPO3\CMS\Core\Package\Cache\PackageCacheInterface::class)) {
- $packageManager = \TYPO3\CMS\Core\Core\Bootstrap::createPackageManager(\TYPO3\CMS\Core\Package\UnitTestPackageManager::class, \TYPO3\CMS\Core\Core\Bootstrap::createPackageCache($cache));
+ if (interface_exists(PackageCacheInterface::class)) {
+ $packageManager = Bootstrap::createPackageManager(UnitTestPackageManager::class, Bootstrap::createPackageCache($cache));
} else {
// v10 compatibility layer
// @deprecated Will be removed when v10 compat is dropped from testing-framework
- $packageManager = \TYPO3\CMS\Core\Core\Bootstrap::createPackageManager(\TYPO3\CMS\Core\Package\UnitTestPackageManager::class, $cache);
+ $packageManager = Bootstrap::createPackageManager(UnitTestPackageManager::class, $cache);
}
- \TYPO3\CMS\Core\Utility\GeneralUtility::setSingletonInstance(\TYPO3\CMS\Core\Package\PackageManager::class, $packageManager);
- \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::setPackageManager($packageManager);
+ GeneralUtility::setSingletonInstance(PackageManager::class, $packageManager);
+ ExtensionManagementUtility::setPackageManager($packageManager);
$testbase->dumpClassLoadingInformation();
- \TYPO3\CMS\Core\Utility\GeneralUtility::purgeInstances();
+ GeneralUtility::purgeInstances();
})();
diff --git a/Build/phpstan-baseline.neon b/Build/phpstan-baseline.neon
index 3cfb689d..1878ea93 100644
--- a/Build/phpstan-baseline.neon
+++ b/Build/phpstan-baseline.neon
@@ -1,21 +1,5629 @@
parameters:
ignoreErrors:
-
- message: "#^Call to an undefined method Extcode\\\\Cart\\\\Service\\\\PaymentMethodsServiceInterface\\:\\:getConfigurationsForType\\(\\)\\.$#"
+ message: '#^Parameter \#3 \$view of class Extcode\\Cart\\Event\\View\\ModifyViewEvent constructor expects TYPO3Fluid\\Fluid\\View\\ViewInterface, TYPO3\\CMS\\Core\\View\\ViewInterface given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/ActionController.php
+
+ -
+ message: '#^Cannot call method getPagePermsClause\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: ../Classes/Controller/Backend/ActionController.php
+
+ -
+ message: '#^Cannot cast mixed to int\.$#'
+ identifier: cast.int
+ count: 1
+ path: ../Classes/Controller/Backend/ActionController.php
+
+ -
+ message: '#^Parameter \#2 \$perms_clause of static method TYPO3\\CMS\\Backend\\Utility\\BackendUtility\:\:readPageAccess\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/ActionController.php
+
+ -
+ message: '#^Property Extcode\\Cart\\Controller\\Backend\\ActionController\:\:\$pluginSettings type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Backend/ActionController.php
+
+ -
+ message: '#^Binary operation "\." between ''attachment;…'' and mixed results in an error\.$#'
+ identifier: binaryOp.invalid
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Cannot call method getContents\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Cannot call method getName\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Cannot call method getOriginalResource\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Cannot call method getSize\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Cannot call method toArray\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Cannot cast mixed to string\.$#'
+ identifier: cast.string
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Parameter \#1 \$array of function end expects array\|object, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Parameter \#1 \$content of method Psr\\Http\\Message\\StreamFactoryInterface\:\:createStream\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Parameter \#1 \$messageBody of method TYPO3\\CMS\\Extbase\\Mvc\\Controller\\ActionController\:\:addFlashMessage\(\) expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/DocumentController.php
+
+ -
+ message: '#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\.$#'
+ identifier: foreach.nonIterable
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Binary operation "\." between ''LLL\:EXT\:cart…'' and mixed results in an error\.$#'
+ identifier: binaryOp.invalid
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''columns'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''config'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''group'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''icon'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''items'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''label'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''link'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''showLabel'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''status'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''title'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''tx_cart_domain_model_order_payment'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''tx_cart_domain_model_order_shipping'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Cannot access offset ''value'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Method Extcode\\Cart\\Controller\\Backend\\Order\\OrderController\:\:dispatchModifyButtonBarEvent\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Method Extcode\\Cart\\Controller\\Backend\\Order\\OrderController\:\:getLanguageService\(\) should return TYPO3\\CMS\\Core\\Localization\\LanguageService but returns mixed\.$#'
+ identifier: return.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Method Extcode\\Cart\\Controller\\Backend\\Order\\OrderController\:\:getPaymentStatus\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Method Extcode\\Cart\\Controller\\Backend\\Order\\OrderController\:\:getShippingStatus\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Method Extcode\\Cart\\Controller\\Backend\\Order\\OrderController\:\:setDocHeader\(\) has parameter \$buttons with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Parameter \#1 \$href of method TYPO3\\CMS\\Backend\\Template\\Components\\Buttons\\LinkButton\:\:setHref\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Parameter \#1 \$identifier of method TYPO3\\CMS\\Core\\Imaging\\IconFactory\:\:getIcon\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Parameter \#1 \$key of static method TYPO3\\CMS\\Extbase\\Utility\\LocalizationUtility\:\:translate\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Parameter \#1 \$messageBody of method TYPO3\\CMS\\Extbase\\Mvc\\Controller\\ActionController\:\:addFlashMessage\(\) expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Parameter \#1 \$queryResult of class TYPO3\\CMS\\Extbase\\Pagination\\QueryResultPaginator constructor expects TYPO3\\CMS\\Extbase\\Persistence\\QueryResultInterface, array\|TYPO3\\CMS\\Extbase\\Persistence\\QueryResultInterface given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Parameter \#1 \$showLabelText of method TYPO3\\CMS\\Backend\\Template\\Components\\Buttons\\AbstractButton\:\:setShowLabelText\(\) expects bool, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Parameter \#3 \$buttonGroup of method TYPO3\\CMS\\Backend\\Template\\Components\\ButtonBar\:\:addButton\(\) expects int, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Possibly invalid array key type mixed\.$#'
+ identifier: offsetAccess.invalidOffset
+ count: 2
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Property Extcode\\Cart\\Controller\\Backend\\Order\\OrderController\:\:\$searchArguments \(array\) does not accept mixed\.$#'
+ identifier: assign.propertyType
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Property Extcode\\Cart\\Controller\\Backend\\Order\\OrderController\:\:\$searchArguments type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Backend/Order/OrderController.php
+
+ -
+ message: '#^Parameter \#1 \$messageBody of method TYPO3\\CMS\\Extbase\\Mvc\\Controller\\ActionController\:\:addFlashMessage\(\) expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/PaymentController.php
+
+ -
+ message: '#^Parameter \#1 \$messageBody of method TYPO3\\CMS\\Extbase\\Mvc\\Controller\\ActionController\:\:addFlashMessage\(\) expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Backend/Order/ShippingController.php
+
+ -
+ message: '#^Cannot access offset ''pid'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 2
+ path: ../Classes/Controller/Cart/ActionController.php
+
+ -
+ message: '#^Cannot cast mixed to int\.$#'
+ identifier: cast.int
+ count: 1
+ path: ../Classes/Controller/Cart/ActionController.php
+
+ -
+ message: '#^Parameter \#1 \$key of method Extcode\\Cart\\Service\\SessionHandler\:\:restoreCart\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Cart/ActionController.php
+
+ -
+ message: '#^Parameter \#1 \$key of method Extcode\\Cart\\Service\\SessionHandler\:\:writeCart\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Cart/ActionController.php
+
+ -
+ message: '#^Property Extcode\\Cart\\Controller\\Cart\\ActionController\:\:\$configurations type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Cart/ActionController.php
+
+ -
+ message: '#^Property Extcode\\Cart\\Controller\\Cart\\ActionController\:\:\$payments type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Cart/ActionController.php
+
+ -
+ message: '#^Property Extcode\\Cart\\Controller\\Cart\\ActionController\:\:\$shippings type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Cart/ActionController.php
+
+ -
+ message: '#^Property Extcode\\Cart\\Controller\\Cart\\ActionController\:\:\$specials type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: ../Classes/Controller/Cart/ActionController.php
+
+ -
+ message: '#^Binary operation "\." between ''billing_address_'' and mixed results in an error\.$#'
+ identifier: binaryOp.invalid
+ count: 2
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Binary operation "\." between ''shipping_address_'' and mixed results in an error\.$#'
+ identifier: binaryOp.invalid
+ count: 2
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Cannot access offset ''pid'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 8
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Cannot access offset ''shippingSameAsBilling'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Cannot access offset ''steps'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Cannot cast mixed to int\.$#'
+ identifier: cast.int
+ count: 4
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Parameter \#1 \$key of method Extcode\\Cart\\Service\\SessionHandler\:\:writeCart\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 4
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Parameter \#1 \$messageBody of method TYPO3\\CMS\\Extbase\\Mvc\\Controller\\ActionController\:\:addFlashMessage\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Parameter \#2 \$messageTitle of method TYPO3\\CMS\\Extbase\\Mvc\\Controller\\ActionController\:\:addFlashMessage\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Parameter \#3 \$severity of method TYPO3\\CMS\\Extbase\\Mvc\\Controller\\ActionController\:\:addFlashMessage\(\) expects TYPO3\\CMS\\Core\\Type\\ContextualFeedbackSeverity, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Cart/CartController.php
+
+ -
+ message: '#^Cannot access offset ''pid'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 1
+ path: ../Classes/Controller/Cart/CountryController.php
+
+ -
+ message: '#^Cannot call method getId\(\) on Extcode\\Cart\\Domain\\Model\\Cart\\ServiceInterface\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: ../Classes/Controller/Cart/CountryController.php
+
+ -
+ message: '#^Cannot call method isPreset\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: ../Classes/Controller/Cart/CountryController.php
+
+ -
+ message: '#^Parameter \#1 \$cartSettings of method Extcode\\Cart\\Utility\\CartUtility\:\:updateCountry\(\) expects array, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Cart/CountryController.php
+
+ -
+ message: '#^Parameter \#1 \$key of method Extcode\\Cart\\Service\\SessionHandler\:\:writeCart\(\) expects string, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: ../Classes/Controller/Cart/CountryController.php
+
+ -
+ message: '#^Parameter \#1 \$payment of method Extcode\\Cart\\Domain\\Model\\Cart\\Cart\:\:setPayment\(\) expects Extcode\\Cart\\Domain\\Model\\Cart\\ServiceInterface, mixed given\.$#'
+ identifier: argument.type
+ count: 2
+ path: ../Classes/Controller/Cart/CountryController.php
+
+ -
+ message: '#^Parameter \#1 \$shipping of method Extcode\\Cart\\Domain\\Model\\Cart\\Cart\:\:setShipping\(\) expects Extcode\\Cart\\Domain\\Model\\Cart\\ServiceInterface, mixed given\.$#'
+ identifier: argument.type
+ count: 2
+ path: ../Classes/Controller/Cart/CountryController.php
+
+ -
+ message: '#^Cannot access offset ''pid'' on mixed\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
+ count: 2
+ path: ../Classes/Controller/Cart/CouponController.php
+
+ -
+ message: '#^Cannot call method getCode\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: ../Classes/Controller/Cart/CouponController.php
+
+ -
+ message: '#^Cannot call method isUseable\(\) on mixed\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: ../Classes/Controller/Cart/CouponController.php
+
+ -
+ message: '#^Parameter \#1 \$className of static method TYPO3\\CMS\\Core\\Utility\\GeneralUtility\:\:makeInstance\(\) expects class\-string\