-
Notifications
You must be signed in to change notification settings - Fork 710
プラグインの初期インストール機構 #4733
Copy link
Copy link
Closed
Labels
Milestone
Description
概要(Overview)
EC-CUBEはプラグインをインストールすることで様々なカスタマイズが可能だが、EC-CUBEのインストール後にプラグインを個別にインストールする必要がある。
よく使われているプラグインはEC-CUBEのインストール時に最初から入っていた方が使いやすいので、プラグインの初期インストール機構があれば便利だと思う。
例えば以下のような用途にも活用できる可能性がある。
- 「おすすめ商品プラグイン」などのよく使われるプラグインを初期インストール
- 「アパレル」や「B2B」など目的ごとにおすすめのプラグインを初期インストール
- プラグイン利用のチュートリアルの役割(?)
全ての要件を満たすのは難しいと思うので、まずはどのような仕様が良いか検討したい。
要件/仕様
- EC-CUBEのパッケージに公式プラグインを同封して配布できる
- EC-CUBEをインストールすると同封したプラグインもインストールされた状態となる
- プラグインはストアからインストールしたプラグインと同様にアップデートができる
実装(調査状況)
- パッケージング
- ストア(
composer)経由でインストール- ライブラリ(
vendor配下 )がインストールされる - composer.jsonにプラグインが追記される
- initialize されていない状態(
initialized=false)- EntityProxyは生成されていない
PluginManager->install()およびPluginManager->enable()は実行されていない
- ライブラリ(
- dtb_plugin.csvへ追記 OR 同等の処理を追加
- 生成にはストアの情報が必要
- パッケージングスクリプトで dtb_plugin OR package-api を叩いて生成
- 生成にはストアの情報が必要
- ストア(
- インストール
- インストール時に dtb_plugin に登録されており、
initialized=falseのプラグインを有効化する処理を追加する
- インストール時に dtb_plugin に登録されており、
- アップデート
- 公式プラグインは認証キーなしでインストール、アップデートできるように修正
- パッケージング時にストアのプロダクトIDまで登録しておけばアップデート可能(要検証)
Details
考えられる仕様
- 初期インストールプラグインの指定方法
- パッケージで指定(ユーザが変更不可)
- インストール時にユーザが指定(Webインストーラ)
- インストール時に開発者が指定(インストールコマンド)
- インストール方法
- パッケージに同封
- メリット:インストールは早い
- デメリット:インストール機構が複雑になりそう
- EC-CUBEインストール後にプラグインインストール
- メリット:インストール機構が比較的シンプル
- デメリット:(プラグインが複数になった場合)インストールに時間がかかる
- パッケージに同封
案
- Webインストーラ内でオプトインでプラグインを選択可能
- EC-CUBEのインストール後にプラグインをインストール(*1)
- 初期インストールプラグインのリストはpackage-apiで配信
*1: composer2.0でインストール時間の短縮を期待
期待する内容(Expect) or 要望 (Requirement)
要件の検討と設計
環境 (environment)
- EC-CUBE: 4.1
関連情報 (Ref)
Reactions are currently unavailable