【Craft 4.4 の新機能】プライベートプラグインについて

Craft CMS でカスタムプラグインを作成する場合、これまでプラグインのハンドルをユニークにする必要がありました。
作成したプラグインを Plugin Store に公開する際に必要となるルールで、ライセンスチェックに利用されるためです。

単純な普通名詞を避けてフレーズにしたり、ベンダーごとに固有な接頭辞を付けるのが一般的だったのですが、Plugin Store に公開しないのであれば必要がないとも言えます。

そこで、今回は Craft 4.4 から可能になったプライベートプラグインについて、ご紹介したいと思います。
これは Craft CMS Advent Calendar 2023 16日目の記事です。

プラグインハンドルが重複したら、どうなるのか?

例えば、importer というハンドルでカスタムプラグインを作成したとします。

Craft 4 Plugin Store の検索結果

Plugin Store で importer と検索すると、ヒットするのは Feed MeSS Entry Importer の2つのプラグインでした。(2023.12.16 現在)

Feed Me 詳細ページの URL は次のようになっていて、feed-me というハンドルが利用されていることがわかります。

https://plugins.craftcms.com/feed-me?craft4

Craft CMS はハンドルだけでプラグインを特定する仕組みのため、将来的に importer というハンドルのプラグインが登録された場合、システム上では Plugin Store に登録されたプラグインを利用している と判断されることになります。

Free のプラグインであれば問題ありませんが、有償プラグインの場合は管理画面上でライセンスの購入を促されるようになり、本来必要のないものを誤って購入してしまう可能性があります。

プライベートプラグインとして作成しておけば、この問題をあらかじめ回避できます。

プライベートプラグインの作成

プライベートプラグインは、Craft Generator 1.3.0 から作成できるようになりました。
Craft Generator の導入方法については、Craft CMS のプラグインやモジュールのひな形を作るを参考にしてください。

Craft CMS 本体のインストールディレクトリに移動して、次のコマンドを実行します。

./craft make plugin

Craft Generator のコマンド実行例(プライベートプラグイン)

プライベートプラグインにする場合、次の質問で yes と入力します。

Private plugin?
Private plugins don’t have license verification, and can’t be published to the Plugin Store.
Make this a private plugin? (yes|no) [no]:yes

これで、ハンドルの接頭辞に _ が付いた、プライベートプラグインが作成されます。

従来のプラグイン作成との違いは?

比較用に Private plugin?no と入力した場合のキャプチャを載せておきます。

Craft Generator のコマンド実行例

具体的な違いは次の通りで、Plugin Store への登録に必要な内容の有無となります。

  • ライセンス形態、サポート用のメールアドレス、プラグインのリポジトリ URL の入力スキップ
  • CHANGELOG.md、LICENSE.md が生成されない

まとめ

今回は、プライベートプラグインについてご紹介しました。
プラグインのハンドル接頭辞として _ が付くかどうかの違いなだけで、いずれの場合も機能面に違いはありませんので、目的に応じて使い分けましょう。

さて、Craft 4.4 / Craft 4.5 の気になる新機能は一旦ここで終了です。
細かいアップデートも含め、標準機能だけでもかなり使い勝手が良いのは、Craft CMS の魅力の一つですね。

直近でリリースされた Craft 5 α版でも更に便利な機能が追加されているようなので、今後の展開にも期待です。