View Issue Details

IDProjectCategoryView StatusLast Update
0007326OXID eShop (all versions)7. --- Other tools --------------public2022-06-28 18:18
Reporterd3 
PriorityurgentSeveritycriticalReproducibilityalways
Status resolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0007326: Paypal (oxid-solution-catalysts/paypal-module) mustn't change method declaration
DescriptionThe declaration of ShopControl::_handleBaseException() is as follows:

OXID eShop (6.4.0 / 6.4.1):

protected function _handleBaseException($exception);

Paypal Module:

protected function _handleBaseException($exception): void;

For compatibility reasons, we generally keep the (outdated) declaration of the shop in our modules. If the Paypal module is now registered between the shop and 3rd party modules, the incompatible declaration triggers the following error:

 [uncaught error] [type E_COMPILE_ERROR] [file /.../source/modules/d3/modcfg/Modules/Application/Controller/d3_oxshopcontrol_modcfg_extension.php] [line 399] [code ] [message Declaration of D3\ModCfg\Modules\Application\Controller\d3_oxshopcontrol_modcfg_extension::_handleBaseException($oEx) must be compatible with OxidSolutionCatalysts\PayPal\Core\ShopControl::_handleBaseException($exception): void]
 
The shop goes into maintenance mode and can no longer be used.

When existing classes are extended it's important that method declarations are not changed. Even if they are outdated / incomplete. The leading system must be the OXID shop itself.

I could not find any other occurrences, which would also affect other extended methods.
TagsNo tags attached.
ThemeNot defined
BrowserNot defined
PHP VersionNot defined
Database VersionNot defined

Activities

d3

2022-06-28 14:41

reporter   ~0013832

PRs:

https://github.com/OXID-eSales/paypal-module/pull/39 for b_6.3.x branch
https://github.com/OXID-eSales/paypal-module/pull/40 for b_6.1.x branch

mario_lorenz

2022-06-28 18:17

developer   ~0013833

I can confirm the error.
I have already accepted the two pull requests.
They become part of a module version >v2.1.3 or >v1.1.3.