Skip to content

プラグインの初期インストール機構 #4733

@okazy

Description

@okazy

概要(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 のプラグインを有効化する処理を追加する
  • アップデート
    • 公式プラグインは認証キーなしでインストール、アップデートできるように修正
    • パッケージング時にストアのプロダクトIDまで登録しておけばアップデート可能(要検証)
Details

考えられる仕様

  • 初期インストールプラグインの指定方法
    • パッケージで指定(ユーザが変更不可)
    • インストール時にユーザが指定(Webインストーラ)
    • インストール時に開発者が指定(インストールコマンド)
  • インストール方法
    • パッケージに同封
      • メリット:インストールは早い
      • デメリット:インストール機構が複雑になりそう
    • EC-CUBEインストール後にプラグインインストール
      • メリット:インストール機構が比較的シンプル
      • デメリット:(プラグインが複数になった場合)インストールに時間がかかる

  • Webインストーラ内でオプトインでプラグインを選択可能
  • EC-CUBEのインストール後にプラグインをインストール(*1)
  • 初期インストールプラグインのリストはpackage-apiで配信

*1: composer2.0でインストール時間の短縮を期待

期待する内容(Expect) or 要望 (Requirement)

要件の検討と設計

環境 (environment)

  • EC-CUBE: 4.1

関連情報 (Ref)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions