3月 26 2022
ECCUBE3のバージョンアップ
クレジットカード決済のプラグインを実装するのに、すごく苦労しました。
ECCUBE 3.011 -> ECCUBE 3.018に上げました。
また、composerが必要になりましたので、PHPのバージョンも5.6から7.4に上げました。
ただ、ECCUBE3が7.1までしか対応してなくて。。いろいろ大変でした。その時のメモです。
————————————————————————-
ECCUBE3ダウンロード
————————————————————————-
https://github.com/EC-CUBE/ec-cube3/releases
https://github.com/EC-CUBE/ec-cube3/archive/refs/tags/3.0.18-p4.zip
3.0.12.zip などにファイル名を変更してダウンロード
————————————————————————-
バージョンアップに関して情報ぺージ
————————————————————————-
https://doc.ec-cube.net/quickstart_update
マイナーバージョンはひとつづつ上げていくこと。
バージョンアップしたらマイグレーションを必ずする。
https://shop3.fukimodosi.org/html/install.php/migration
新しいバージョン側の /html/install.phpを使う
————————————————————————-
EC-CUBE3でphp7.3以降に対応させる方法
————————————————————————-
これをやらないと、ページのセレクトボックスが崩れたり、管理ページのメニューアイコンが巨大化する。
ECCUBEのディレクトリに移り
curl -OL https://getcomposer.org/download/1.10.23/composer.phar
p composer.phar require –ignore-platform-reqs twig/twig “1.41.0”
————————————————————————-
配布ソースにvenderディレクトリがない
————————————————————————-
ECCUBEのマイナーアップデートをしていくと、3.0.15あたりで、配布のソースにvenderディレクトリがなくなります。
venderフォルダがない件
composerを使ってvenderディレクトリを生成する。
>composerをインストールしたら、そのcomposerを使ってライブラリをインストールします。
>拾ってきた旧バージョンのECCUBEを解凍すると、その中にcomposer.json、composer.lockという名前のファイルが
>あるはずです。それらのファイルはcomposerで取得するライブラリの定義ファイルのようなものです。
>コンソール(コマンドプロンプト)でそのファイルが入っているディレクトリに移動し、composer installを叩くことで、
>必要なライブラリが全てインストールされ、vendorディレクトリに格納されます。
————————————————————————-
上部メニューとサイドのログインボックスが表示されない。
————————————————————————-
途中からページの上部メニューとサイドのログインボックスが表示されなくなりました。
apacheのエラーログでは下記が表示されます。
[Sat Mar 26 12:33:56.542150 2022] [php7:warn] [pid 21680] [client 211.2.173.154:61414] PHP Warning: Unable to generate a URL for the named route “block_menu” as such route does not exist. in ****/shop_test/app/Plugin/ExcludeTax/Twig/Extension/EccubeExtension.php on line 210, referer: https://shop5.fukimodosi.org/shopping/complete
[Sat Mar 26 12:33:56.591574 2022] [php7:warn] [pid 21680] [client 211.2.173.154:61414] PHP Warning: Unable to generate a URL for the named route “block_sidelogin” as such route does not exist. in ****/shop_test/app/Plugin/ExcludeTax/Twig/Extension/EccubeExtension.php on line 210, referer: https://shop5.fukimodosi.org/shopping/complete
このエラー。バージョンアップでsrcの中を上書きしたら出た。
のルーティングを追加を参照する。
>ルーティングとは、どのURLにアクセスされたらどのコントローラを動かすか、という定義です。
>src/Eccube/ContorollerProvider/FrontControllerProvider.phpに定義されています。
上記ファイルのblockのところから定義が消えていたため、元のファイルを参照して以下を追加してOK
$c->match(‘/block/menu’, ‘\Eccube\Controller\Block\MenuController::index’)->bind(‘block_menu’);
$c->match(‘/block/sidelogin’, ‘\Eccube\Controller\Block\SideloginController::index’)->bind(‘block_sidelogin’);
src/Eccube/ContorollerProvider/FrontControllerProvider.phpが上書きされたので出た現象っぽです。
ここまでやってやっと安定してくれました。なにが大変って「やらないといけないことは何か」を理解するのがすごく大変。