View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0007326 | OXID eShop (all versions) | 7. --- Other tools -------------- | public | 2022-06-28 14:31 | 2022-06-28 18:18 |
Reporter | d3 | Assigned To | |||
Priority | urgent | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Summary | 0007326: Paypal (oxid-solution-catalysts/paypal-module) mustn't change method declaration | ||||
Description | The 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. | ||||
Tags | No tags attached. | ||||
Theme | Not defined | ||||
Browser | Not defined | ||||
PHP Version | Not defined | ||||
Database Version | Not defined | ||||
|
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 |
|
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. |