OctoberCMSのサイトで自作プラグインを登録すれば、OctoberCMSのバックエンド(管理画面)からGUIでプラグインをインストールできるが、これだと、サーバに自動デプロイすることができない。
そこで、composerでインストールできるようにしておくと便利だ。更にgithubなどから持ってきてもらえればpackagistにも登録する必要ないし、プライベートのレポジトリを使用できる。
手順
- 自作プラグインのルートにcomposer.jsonを作成する。
- プラグインを使用する側のcomposer.jsonで、依存関係に登録し、レポジトリを指定する。
プラグインのcomposer.json
{
"name": "pikanji/utilitycollection-plugin",
"type": "october-plugin",
"require": {
"php": ">=5.5.9",
"composer/installers": "~1.0"
},
"license": "MIT",
"authors": [
{
"name": "Kanji Furuhashi",
"email": "pikanji@gmail.com"
}
]
}
-
name
はレポジトリ名とは関係ない。 -
type
にoctober-plugin
とすることで、OctoberCMSのplugins
ディレクトリの下にname
の構造でインストールされる。name
に-plugin
サフィックスがついている場合はそれを除いた部分がディレクトリ名になる。 - 上記の場合、
plugins/pikanji/utilitycollection
となる。 - 非公開パッケージの場合、
license
はproprietary
で。こちら参考。
依存する側のcomposer.json
{
...
"require": {
...
"pikanji/utilitycollection-plugin": "dev-master",
...
},
...
"repositories": [
{
"url": "git@bitbucket.org:pikanjidevteam/utilitycollection-plugin.git",
"type": "git"
}
]
}
-
require
にプラグイン側のcomposer.jsonのname
の値を指定する。 -
dev-master
はバージョン・エイリアス。dev-hoge
とするとhoge
ブランチから取ってきてくれる。 - このプラグインのレポジトリを
repositories
で指定する。 - 注意:composer.jsonは最後の項目の後に","がついているとエラーになる。
これで、composer update
することで、このレポジトリから指定したプロジェクトがプラグインディレクトリにインストールされる。
デプロイする時は、composer.lock
を含めていればcomposer install
で同じバージョンがインストールされる。
プライベートレポジトリを指定する場合は、composer install
を実行するユーザがレポジトリにアクセスできる様にSSHキーの設定をしてある必要がある。
それはまた別の話なので割愛する。