【BC5】Windows環境でのアップデートについて

【環境情報】
・baserCMSのバージョン:5.0.18
・レンタルサーバー名:XAMPP8.2.4
・データベース:SQLite
・使用テーマ:自作テーマ
・PHPスキル(自己評価):E

Windows環境でアップデートする際、PHP及びCURLのパスを通し、Xdebugを有効化してもアップデートに失敗するので調べたところ、下記のファイル内の
Windows環境では動作しないコマンドを実行するコードを変更したところ動作し、アップデートできました。

vendor/baserproject/baser-core/src/Utility/BcComposer.php

64行目 「cd」→「cd /D」 、「;」→「&&」に変更
変更前

self::$cd = "cd " . ROOT . DS . ';';

変更後

self::$cd = "cd /D " . ROOT . DS . '&&';

66行目 「export」→「set」 、「;」→「&&」に変更
変更前

self::$export = "export HOME=" . self::$composerDir . ";";

変更後

self::$export = "set HOME=" . self::$composerDir . "&&";

133行目「cd」→「cd /D」 、「;」→「&&」に変更
変更前

$command = 'cd ' . self::$composerDir . '; ' . self::$export . ' curl -sS https://getcomposer.org/installer' . ' | ' . self::$php . ' 2>&1';

変更後

$command = 'cd /D ' . self::$composerDir . '&& ' . self::$export . ' curl -sS https://getcomposer.org/installer' . ' | ' . self::$php . ' 2>&1';

ただ、アップデートの際、PHP CLIのパスは手動で入力する必要があるため、そこのところは別のPHPファイルの記述を変更する必要があるのかも・・・

修正については「Windows環境でのインストール方法」のトピックを参考にしました。
Windows環境でのインストール(5.0.10)

ご報告いただきありがとうございます!

【環境情報】
・baserCMSのバージョン:5.0.20~
・レンタルサーバー名:XAMPP8.2.4
・データベース:SQLite
・使用テーマ:自作テーマ
・PHPスキル(自己評価):E

basercmsのバージョンが新しくなり、BcComposer.phpの内容が変わっていたため、Windows(Xampp)環境でアップデートを行う際の記述を修正します。
※5.1.2ではBcComposer.phpの記述が再度変わっていたので、5.1.3が出たときまた書き方を変える必要があります。
※アップデートの際、PHP CLIのパスは手動で入力する必要があります。
vendor/baserproject/baser-core/src/Utility/BcComposer.php

66行目 「cd」→「cd /D」 、「;」→「&&」に変更
変更前

self::$cd = ($dir)? "cd " . $dir . ';': "cd " . ROOT . DS . ';';

変更後

self::$cd = ($dir)? "cd /D  " . $dir . '&&': "cd /D " . ROOT . DS . '&&';

68行目 「export」→「set」 、「;」→「&&」に変更
変更前

self::$export = "export HOME=" . self::$composerDir . ";";

変更後

self::$export = "set HOME=" . self::$composerDir . "&&";

135行目「cd」→「cd /D」 、「;」→「&&」に変更
変更前

$command = 'cd ' . self::$composerDir . '; ' . self::$export . ' curl -sS https://getcomposer.org/installer' . ' | ' . self::$php . ' 2>&1';

変更後

$command = 'cd /D ' . self::$composerDir . '&& ' . self::$export . ' curl -sS https://getcomposer.org/installer' . ' | ' . self::$php . ' 2>&1';

また、xampp用にBcComposer.phpの記述を変更して、5.1.0から5.1.1(または5.1.2)にアップデートする際下記のようなエラーが表示されました。

Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires baserproject/baser-core 5.1.1 → satisfiable by baserproject/baser-core[5.1.1].
- baserproject/baser-core 5.1.1 requires mobiledetect/mobiledetectlib ^3.74 → found mobiledetect/mobiledetectlib[3.74.0, 3.74.2, 3.74.3] but it conflicts with your root composer.json require (^4.8.03).

翻訳したところ
『’baserproject/baser-core’のバージョン5.1.1が’mobiledetect/mobiledetectlib’のバージョン3.74を要求していますが、あなたの’composer.json’ファイルでは’mobiledetect/mobiledetectlib’のバージョン4.8.03を要求しているため、バージョンの競合が発生しています。』

とのことでしたので、composer.jsonとcomposer.lockファイルの’mobiledetect/mobiledetectlib’と関係ありそうな箇所を修正したところインストールできました。
composer.json
23行目 「^4.8.03」→「^3.74」に変更
修正前

mobiledetect/mobiledetectlib": "^4.8.03"

修正後

mobiledetect/mobiledetectlib": "^3.74"

composer.lock
49行目 「^4.8.03」→「^3.74」に変更
修正前

"mobiledetect/mobiledetectlib": "^4.8.03",

修正後

"mobiledetect/mobiledetectlib": "^3.74",

1574行 「4.8.06」→「3.74.3」に変更
修正前

"version": "4.8.06",

修正後

"version": "3.74.3",

basercms5.1.1のインストーラーパッケージでは、初めから上記の記述になっていたので、それに合わせて修正しました。
5.1.0だけ上記の修正する必要があるのかも?