Skip to content

Commit

Permalink
baserCMS v5.1系へのアップデートに関するドキュメントを追加
Browse files Browse the repository at this point in the history
  • Loading branch information
ryuring committed Jul 16, 2024
1 parent d86c219 commit 363fd9b
Show file tree
Hide file tree
Showing 3 changed files with 128 additions and 0 deletions.
56 changes: 56 additions & 0 deletions 5/migration/ver51_migration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# baserCMS v5.1.0 アップデートガイド

baserCMSのマイナーアップデート「v5.1.0」にアップデートするには、従来とは異なるアップデート手順が必要です。以下の手順に従ってアップデートを行ってください。

大まかには次の手順となります。
1. BcUpdateSupporter をインストールする
2. BcUpdateSupporter で、v5.0.19 改善プログラムを実行する
3. BcUpdateSupporter で改善プログラムを実行する
4. baserCMS v5.0.20 にアップデートする
5. BcUpdateSupporter で、v5.0.20 改善プログラムを実行する
6. baserCMS v5.1.0 にアップデートする
7. プラグインを 5.1系に変換する

## 1. BcUpdateSupporter をインストールする
[BcUpdateSupporter](https://market.basercms.net/products/detail.php?product_id=164) は、baserCMSのアップデートにおける課題を解決する重要なプラグインです。v5.1.0 にアップデートするためには、BcUpdateSupporter が必要です。
baserマーケットよりダウンロードし、`/plugins/` フォルダに配置して、管理画面よりインストールします。

インストールすると、設定メニュー内に、アップデートサポーターのメニューが追加されます。提供する機能は次のとおりです。

- アップデートに関する課題の解決
- DBマイグレーションの実行(アップデートがうまくいかない場合に利用)
- アップデートスクリプトの実行(アップデートがうまくいかない場合に利用)

## 2. BcUpdateSupporter で、v5.0.19 改善プログラムを実行する
現在のバージョンが、v5.0.19 の場合は、メニュー「アップデート時の問題」より、BcUpdateSupporter の詳細画面に移動し、5.0.19用の改善プログラムを実行します。
そうでない場合は、次の手順に進んでください。

## 3. baserCMS v5.0.20 にアップデートする
アップデート通知からアップデート画面に移動します。アップデート通知が表示されない場合は、管理画面の「システム基本設定」>「管理画面設定」>「アップデート通知」より、「管理システムのアップデート通知を有効にする」にチェックを入れて保存してください。
それでも表示されない場合は、直接URLを入力してアクセスしてください。

```
https://your-host/baser/admin/baser-core/plugins/update
```

最新版をダウンロードし、その後、アップデートを実行します。
※ v5.0.18以下の場合は、最新版ダウンロードボタンは表示されず、直接アップデートを実行します。

実行後、現在のプログラムのバージョンとデータベースのバージョンが 5.0.20以上になっていることを確認します。

## 4. BcUpdateSupporter で、v5.0.20 改善プログラムを実行する
メニュー「アップデート時の問題」より、BcUpdateSupporter の詳細画面に移動し、5.0.20用の改善プログラムを実行します。

## baserCMS v5.1.0 にアップデートする
アップデート画面に移動し、最新版をダウンロードし、その後、アップデートを実行します。

baserCMS5.0系のプラグインは、baserCMS v5.1.0ではそのまま動作しない可能性がありますので、アップデート実行時に、BcUpdateSuppoertプラグインによって、全てのプラグインが無効化されます。

実行後、現在のプログラムのバージョンとデータベースのバージョンが 5.1.0以上になっていることを確認します。

## プラグインを 5.1系に変換する
コアプラグイン以外のbaserCMS v5.0系のプラグインは、baserCMS v5.1.0ではそのまま動作しない可能性があります。

BcAddonMigrator を利用して、5.1系に変換しましょう。

- [5.0系のプラグインを 5.1系 に移行](../plugin/migration_plugin_from_ver50)
2 changes: 2 additions & 0 deletions 5/operation/update.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ baserCMS5よりオートアップデート機能も入り、バージョンア
## アップデートの実行
baserCMS本体のバージョンアップは [オートアップデート](../ver5_tour#オートアップデート) を参考にしてください。

なお、v5.1 系へのアップデートについては、従来とは異なるアップデート手順が必要です。[baserCMS v5.1.0 アップデートガイド](../migration/ver51_migration) を参考にしてください。

## アップデートで実行されていること
baserCMS本体のバージョンアップは [オートアップデート](../ver5_tour#オートアップデート) で自動で行えますが内部的に次のような処理を行っています。

Expand Down
70 changes: 70 additions & 0 deletions 5/plugin/migration_plugin_from_ver50.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# 5.0系のプラグインを 5.1系 に移行

5.0系のプラグインは、そのままの状態で、5.1系で動作しない場合があります。

基本的には、[BcAddonMigrator](https://market.basercms.net/products/detail.php?product_id=158) を利用して変換することで動作しますが、次のものについては、手動で修正が必要な場合があります。

BcAddonMigrator の利用方法については、[baserCMS4のプラグインを変換](./migration_plugin_from_ver4) を御覧ください。

## ファイルアップロード
ファイルアップロード機能を実装し、コントローラーなどで、`$this->getRequest()->getData('field_name')` で取得していた値が、配列からオブジェクト(`\Laminas\Diactoros\UploadedFile`)に変更となっています。

取り扱い方法が変わっていますので変更しましょう。
ただし、baserCMSが提供している、`BcUploadBehavior` を利用している場合は、本体側が対応していますので特に変更は必要ありません。

```php
$attachment = $this->getRequest()->getData('field_name');

// $attachment['name'];
$name = $attachment->getClientFilename();
// $attachment['tmp'];
$type = $attachment->getClientMediaType();
// $attachment['size'];
$size = $attachment->getSize();
// $attachment['tmp_name'];
$tmpName = $attachment->getStream()->getMetadata('uri');
// $attachment['error'];
$error = $attachment->getError();
// move_uploaded_file(例外処理が必要)
$data->moveTo($targetPath);
```
詳細については、[CakePHP ファイルアップロード](https://book.cakephp.org/5/ja/controllers/request-response.html#request-file-uploads) のドキュメントを参照してください。

## フォルダ
`\Cake\Filesystem\Folder` は廃止されました。 `\BaserCore\Utility\BcFolder` を利用してください。

基本的には、[BcAddonMigrator](https://market.basercms.net/products/detail.php?product_id=158)で、変換が可能ですが、手動で修正が必要な場合がありますのでご注意ください。

### Folder::__construct()
`BcFolder::__construct()` では、引数にパスの指定が必要となりました。
後方互換用として、引数なしでも利用できますが、その処理方法は非推奨となっており、近い将来、引数がないと動作しなくなる予定です。

### Folder::read()
`BcFolder::getFiles()``BcFolder::getFolders()` を利用してください。
後方互換用として、`BcFolder::read()` が用意されていますが、非推奨となっており、近い将来削除される予定です。

### Folder::create()
`Folder::create()` では、第一引数がパスとなっていましたが、`BcFolder::create()` は、第一引数は、マスク(権限)となっています。
後方互換用として、第一引数にパスを指定しても利用できますが、その処理方法は非推奨となっており、近い将来、その処理方法では正常に動作しなくなる予定です。

### Folder::delete()
`Folder::delete()` では、第一引数がパスとなっていましたが、`BcFolder::delete()` は、引数の指定は不要となりました。
後方互換用として、第一引数にパスを指定しても利用できますが、その処理方法は非推奨となっており、近い将来、その処理方法では正常に動作しなくなる予定です。

### Folder::copy()
`Folder::copy()` では、第二引数の `from` キーにコピー元のパスを指定できましたが、`BcFolder::copy()` では、非推奨となりました。
後方互換用として、第二引数の `from` キーにコピー元のパスを指定しても利用できますが、その処理方法は非推奨となっており、近い将来、その処理方法では正常に動作しなくなる予定です。

### Folder::move()
`Folder::move()` では、第二引数の `from` キーにコピー元のパスを指定できましたが、`BcFolder::move()` では、非推奨となりました。
後方互換用として、第二引数の `from` キーにコピー元のパスを指定しても利用できますが、その処理方法は非推奨となっており、近い将来、その処理方法では正常に動作しなくなる予定です。

## ファイル
`\Cake\Filesystem\File` が廃止されました。`\BaserCore\Utility\BcFile` を利用してください。

基本的には、[BcAddonMigrator](https://market.basercms.net/products/detail.php?product_id=158)で、変換が可能ですが、手動で修正が必要な場合がありますのでご注意ください。

なお、現在は、baserCMSの基本機能に必要なメソッドだけが移植されており、いくつかのメソッドは未実装となり利用できません。
必要なメソッドが存在しない場合は、本家にプルリクエストを出してみてください。


0 comments on commit 363fd9b

Please sign in to comment.