ipl-ssugimoto / test

0 stars 0 forks source link

EC-CUBE 2.17.2対応 #1

Open ipl-ssugimoto opened 2 years ago

ipl-ssugimoto commented 2 years ago

PHP8対応 #405 の影響で SC_Plugin_Base.php クラスのinstall、uninstall、enable、disableメソッドの宣言が public function から public static function に変更されている。 https://github.com/EC-CUBE/ec-cube2/pull/405/files#diff-e3893a4908e7945ee32224a3e23f4bd79752fd68785f97ad37246e1c115aff87

上記の影響受け、ECCUBE2.17.1まで使用していたプラグインでは、SC_Plugin_Base.phpを継承しているクラスでエラーになる。 具体的には、クーポン管理プラグインでは、CouponManageクラスで SC_Plugin_Baseクラスを継承しているが、CouponManageクラスのメソッドがpublic functionになっており、「Cannot make static method SC_Plugin_Base::install() non static」エラーになる。 そのため、継承先のinstall、uninstall、enable、disableメソッドの宣言を public static function に修正する必要がある。 しかし、public static function に修正した場合、今度はECCUBE2.17.1にインストールした場合にエラーになるため、2.17.1までと2.17.2以降でプラグインを分けなければならない。

ipl-ssugimoto commented 2 years ago

そもそも SC_Plugin_Baseクラスを継承しない方針で修正する。