プラグインを管理する。
一覧、新規登録、インストール、無効化、有効化、削除などの機能を提供する。
/plugins/
フォルダに配置されているプラグインの一覧を表示する。
CakePHP4系では、テーマもプラグインとして開発するため、config.php
にて、type
を Theme
と定義しているものは表示しない。
また、Configure にて、 BcApp.core
に定義されているものは、baserCMS本体のパッケージとみなし、こちらもの表示しない。
なお、アクションとして次の機能を提供する。
Zipファイルのプラグインをアップロードすることができる。
アップロードとZipファイルの展開のみを行い、インストールは行わない。
データベースのマイグレーションとスクリプトの実行を行う。
インストール時、 /VERSION.txt
内1行目のバージョン番号をデータベースに登録する。
また、インストール時に「全てのユーザーで利用」と「管理ユーザーのみ利用」が選択ができる。
「全てユーザーで利用」を選択した場合は、アクセス制限設定に対象プラグインを追加する。
/config/init.php
を配置すると、インストール時に実行させる事ができる。
プラグインのファイルは残り、データベースのデータも残った状態となる。
プラグインの有効化の際、データベースのデータを初期化することができる。
プラグインのうち選択したものを一度に無効化できる。
プラグインからイベントにイベントリスナーを設定している際の実行順序を変更することができる。
プラグインのアップデートを実行することができる。
/VERSION.txt
内のバージョン番号が、データベースに保管されたバージョン番号よりも大きい場合に、一覧にアップデートボタンを表示する。
アップデート時には、マイグレーションの実行とスクリプトの実行を行う。
/config/update/
内にバージョン番号のフォルダを配置すると、対象バージョン用のプログラムとして認識される。
# バージョン 5.0.0 の場合
/config/update/5.0.0/
対象バージョン用プログラム設置フォルダに config.php
を配置することでアップデート画面に表示するアラートメッセージを定義することができる。
// /config/update/5.0.0/config.php
<?php
return [
'updateMessage' => 'アラートメッセージを記述します。'
];
対象バージョン用プログラム設置フォルダに updater.php
を配置することで、アップデート時に実行するスクリプトを定義することができる。
// /config/update/5.0.0/updater.php
<?php
// 例)
$users = TableRegistry::getTableLocator()->get('BaserCore.Users');
$user = $users->find()->where(['id' => 1])->first();
$user->name = 'hoge';
$users->save($user);
baserマーケットのプラグインを表示する。