大した内容ではないですが、前回の記事に含めると長くなるので別にさせてもらいました。
ダウンロードしたパッケージやプラグインなど全てを自分のプロジェクトファイルとしてgit管理してしまうのも、場合によってはいいのかもしれませんが、私は出来る限り自分のソースコードと外部のパッケージ等は分けて管理したいと思います。正直どちらがいいのかはわかりません。
OctoberCMSにもpluginやvendorなど様々なディレクトリがあって、いまいちどこまでをgit管理に含むべきかわかりづらいと思いますんで、そのお話を書きます。
まず、プロジェクトディレクトリ直下の.gitignoreは下記のような感じでよいかと。どこかから拝借したものに少し手を加えています。
/bootstrap/compiled.php
composer.phar
.idea
.env
.env.*.php
.env.php
*.log
sftp-config.json
selenium.php
# OS or editor misc files
*~
*.bak
Thumbs.db
desktop.ini
.DS_Store
# for netbeans
nbproject
# Eclipse setting files
.buildpath
.project
.settings
# IDE Helper
_ide_helper*.php
ここで除外したいディレクトリをリストアップしてもいいんですが、ディレクトリ構造は残しておいたほうが個人的にはわかりやすくて良いと思うので、私は各ディレクトリの中にそれぞれの.gitignoreを配置する方法をとっています。storage
ディレクトリを見てもらうとわかりますが、OctoberCMSのプロジェクトでもそのようにしているみたいです。
除外したいディレクトリはmodules、plugins、vendorです。
- modules: OctoberCMSのモジュール群
- vendor: 外部の依存パッケージ
- plugins: 外部プラグインや自作したプラグイン
いずれも、composerでインストールしていれば、デプロイ先ではcomposer install
を実行することで適宜入れられます。
自作するプラグインも汎用化できるならば別プロジェクトとして管理した方が別件で流用できて良いかと思います。
除外するにはそれぞれのディレクトリに下記の内容の.gitignoreを格納します。同ディレクトリ以下の.gitignore以外のすべてを除外するという意味の内容です。
*
!.gitignore
themesディレクトリに関しては含めても別リポジトリでも良いと思います。テーマにゴリゴリにページを実装していくなら、アプリ専用のテーマになるのでアプリのソースツリーとして同じリポジトリでも良いでしょう。もし、ページはDBに保存してテーマのソースコードは変更しないのであれば、別リポジトリとして管理しても良いと思います。
(追記:以下のthemesディレクトリに関しては自信ありません。そもそも使い方・考え方が間違っているかも。)
ちなみに、私の場合、themesディレクトリの内容は除外しません。実装するページのソースコードはテーマに入るからです(つまり、テーマを切り替えるとページが無くなってしまいます)。plugins同様にgit submoduleなどで別途管理してもいいんですが、この段階では面倒なだけでメリットがあまりないので一緒にします。
このテーマの切り替えが綺麗にできないのはOctoberCMSの微妙なところではあります。これって、普通なんですかね?他のCMSに詳しくないのでわかりません。
OctoberCMSはテーマのソースコードにViewだけでなくControllerも含まれてしまっています。その代わり、Componentという概念で、ロジックを部品化してほとんど分離することはできるかと思います。が、Laravelを素で使う様にきれいにMVCで分けるのは難しいかもしれません。
まぁ、それでも効率よく開発ができるので使っているんですが。
もしアプリのソースツリーにテーマを含めるのであれば、デフォルトで入っているdemoというテーマもgit管理に入ってしまうので、気持ち悪かったらdemoディレクトリごと削除してください。テーマがないとサイトを表示できないので、管理画面からお好きなテーマを入れるかしてください。BootstrapやjQuery、FontAusomeを使ってスクラッチから作りたい場合はBlang-Bootstrapのテーマなどいいと思います。
余談でしたが、こんな感じでgit管理を始めます。
cd my-blog
git init
git add .
git commit -m "Initial commit"
OctoberCMSのインストールにcomposerを使うのをおすすめしたのは、このようにgitでソース管理するファイル数をミニマムにしたり分離したりできるためでした。