LaravelベースのCMS OctoberCMS入門

OctoberCMSとはタイトルの通り人気のPHPフレームワークLaravelをベースにしたCMSです。

追記 (2021/02/27)
まず初めに、個人的な意見ですが、CMSと言ってますがWordPressと比較するようなものではありません。
WordPressとどちらにしようか検討している場合はWordPressをおすすめします。CMSとしてはWordPressの方が歴史が長くユーザも多いため圧倒的に使いやすいと思います。
一方、Octoberはリッチなフレームワークとして非常に優秀です。つまりエンジニア向けです。（追記ここまで）

[<img width="1192" alt="octobercms.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/138322/bafd9bef-8436-4faa-a3d1-2b5d53618df7.jpeg">](http://octobercms.com/)

Webエンジニアの自覚が無かった私ですが、なりゆきで幾つかのサイトを開発運営していますが、開発力を持たない企業だと、SEOとか気にしだすと結局CMSが必要になってくるんですね（はじめは要らないって思っていても）。

なので、実装の自由を奪われるのが嫌で使用していなかったCMSに手を出してみました。

LaravelベースのCMSはいくつかありますが、現在、実用レベルなのはOctoberCMSくらいではないでしょうか？[こちら](http://laraveldaily.com/review-top-5-laravel-based-cmss/)で色々とレビューされています。

なぜPHPか、なぜLaravelか、ってのは大した理由ではありません。
自分が他の言語よりはPHPに慣れていて余計な時間を掛けたくなかったからと、Laravelは重いとの評価ありますが、それは高トラフィックなサイトでもないと関係ないし、便利な機能がてんこ盛りなんで使っていて開発効率が非常に良かったからです。

だらだらと書きましたが、私が気に入ったOctoberCMSの日本語の情報が少ないので、今後ここに自分の備忘録としてノウハウを書いていきたいと思います。

お断りですが、OctoberCMSはCMSですが、WordPressほど誰にでもできるものではないと思います。
テンプレートとロジックをつなげるのにコーディングがある程度必要になるので、ここで書いていく内容も開発者向けとなると思います。

関連投稿インデックス
-------------------
* [OctoberCMSの導入](http://qiita.com/pikanji/items/7017e4264d960db27210)
* [OctoberCMSで作ったプロジェクトのgit管理](http://qiita.com/pikanji/items/384278f9d633c9077a24)
* [OctoberCMS 環境別の設定](http://qiita.com/pikanji/items/6e2141f05aae224f2553)
* [OctoberCMSをデプロイする](http://qiita.com/pikanji/items/8810dee8e44f8734dc30)
* [OctoberCMSプラグインのインストール方法３つ(GUI, Composer, 手動)](http://qiita.com/pikanji/items/cb778fa63c8a72b023e2)
* [OctoberCMSにComposerで非Composer対応プラグインをインストールする](https://qiita.com/pikanji/items/223c1b80575019404196)
* [OctoberCMSで簡単にブログを作る](https://qiita.com/pikanji/items/2846768e35f1c6d97aa1)
* [OctoberCMSで画像などメディアの保存先をS3にする](http://qiita.com/pikanji/items/a5d0067b4abccf002101)
* [OctoberCMSでもIDE補完](http://qiita.com/pikanji/items/3cd51a10df3654b42e03)
* [OctoberCMSでブラウザ、OS、デバイスを判定する](https://qiita.com/pikanji/items/ecbaf3c8794ba8dd9ca4)
* [OctoberCMSのページライフサイクル（描画までのメソッドの実行順）](https://qiita.com/pikanji/items/340ebc62841139d73bc4)
* [OctoberCMSで多言語化対応する (Translateプラグイン) - その１](https://qiita.com/pikanji/items/f3491f56730e7911afc9)
* [OctoberCMSのエラーをSlackに通知する](https://qiita.com/pikanji/items/dd8c50627642dd576661)
* [OctoberCMSでLaravel Dusk + Seleniumを使ってE2Eテストをする](https://qiita.com/pikanji/items/9b82f772e06ac285f806)
* [OctoberCMSでLaravel Duskをもっと簡単に使うプラグイン](https://qiita.com/pikanji/items/3e305693f827f6df5039)
* [OctoberCMSで特定のcookieの暗号化を解除する](https://qiita.com/pikanji/items/699f825c07a5682daaf2)
* [OctoberCMSでWeb APIを実装する](https://qiita.com/pikanji/items/f0538c68dccc1af5071d)
* [OctoberCMSのAjax用関数($.request)をTypeScriptから使う](https://qiita.com/pikanji/items/94045be0118dd3f05349)
* [OctoberCMSでECサイトを作る (Shopaholic編１：インストール)](https://qiita.com/pikanji/items/c72eccc65d5f128a73d2)
* [OctoberCMSでECサイトを作る (Shopaholic編２：製品の登録＆表示)](https://qiita.com/pikanji/items/d17084f630038106cd1a)
* [OctoberCMS ViewBagの変数の有無のチェック方法](https://qiita.com/pikanji/items/4802b4d5d79eea8a579b)
* [OctoberCMSテーマ作成：ページファイルにコメントを記述する](https://qiita.com/pikanji/items/dae8e796112000276c5d)
* [OctoberCMSテーマ作成：ページPHPコードからPage Not Found (404)を返す](https://qiita.com/pikanji/items/0f3bde360ba03a07aa4c)
* [OctoberCMSプラグイン作成：リソースのCRUD的な管理画面を簡単に作る](http://qiita.com/pikanji/items/dc2f5180c4ffe8829752)
* [OctoberCMSプラグイン作成：バックエンドのドロップダウンにデフォルト値を含める方法３つ](https://qiita.com/pikanji/items/609db975c4083cbd1ad4)
* [OctoberCMSプラグイン作成：リソースの管理画面からファイルを関連付けてアップロードする](https://qiita.com/pikanji/items/9fd0017e7d2e83eeb10a)
* [OctoberCMSプラグイン作成：添付ファイル・画像をプログラムから作成する](https://qiita.com/pikanji/items/6859e24f109280d26484)
* [OctoberCMSプラグイン作成：Ajaxハンドラにデータを渡す](https://qiita.com/pikanji/items/83481fca922ef3c1f8ae)
* [OctoberCMSプラグイン作成：コンポーネントからPage Not Found (404)を返す](https://qiita.com/pikanji/items/f72ac4c36520152f67e8)
* [OctoberCMSプラグイン作成：個別gitレポジトリで管理し、composerでインストールさせる](http://qiita.com/pikanji/items/e28e83edce542794c4ec)
* [OctoberCMSプラグイン作成：環境別にcomposer.jsonを使い分ける](http://qiita.com/pikanji/items/8605d27dda9b80b7e71f)
* [OctoberCMSプラグイン作成：コマンド作成](https://qiita.com/pikanji/items/b7bad6d8807feba22c1b)
* [OctoberCMSプラグイン作成：モデルのto-manyリレーションをクリアする](https://qiita.com/pikanji/items/1d92f6fe317ba4f2c463)
* [OctoberCMSプラグイン作成：他プラグインのモデルにリレーションを追加する](https://qiita.com/pikanji/items/d35a7b34b1b65c86ae30)
* [OctoberCMSプラグイン作成：対話式インタプリタ(tinker)で実行結果を確認する](https://qiita.com/pikanji/items/ea7623751e89c65f9317)


#### トラブルシューティング
* [OctoberCMSトラブルシューティング：adminユーザがなくなったときの対処法](https://qiita.com/pikanji/items/dbbfc14d9d96e97c6dcd)
* [OctoberCMSトラブルシューティング：管理画面で"too many redirects"でページが表示されない](https://qiita.com/pikanji/items/c1920c555c1f2debfdcc)
* [OctoberCMSトラブルシューティング："Index column size too large. The maximum column size is 767 bytes."が発生したときの対処方法](https://qiita.com/pikanji/items/8fd0bb30af852f995b3f)
* [Laravelトラブルシューティング：facadeのメソッドが undefined エラーになる](https://qiita.com/pikanji/items/bb3f970b5a0c2e96c9e1)
* [Laravelトラブルシューティング：外部キーが作成できない](https://qiita.com/pikanji/items/ca56f5f799f04d51d1e6)

#### アドバンスドテクニック
* [October CMS プラグイン実装テク：Linuxコマンドを実行する](https://qiita.com/pikanji/items/c29bcd7b4b599873594a)
* [October CMS プラグイン実装テク：LinuxコマンドのSTDOUTをリアルタイムで取得する](https://qiita.com/pikanji/items/db648c55dbf8210956d5)
* [October CMS プラグイン実装テク：プラグインから自動的にファサードやサービスプロバイダを登録する](https://qiita.com/pikanji/items/6a4ad38ae8ceede368b8)
* [October CMS プラグイン実装テク：コンポーネントから他のコンポーネントを組み込む](https://qiita.com/pikanji/items/d38a89fcd7fa678972e7)
* [October CMS プラグイン実装テク：コンポーネントからなるべく早くリダイレクトをかける](https://qiita.com/pikanji/items/51ffc61e83508dba325d)
* [October CMS (Laravel) 検索結果にページネーションを使う](https://qiita.com/pikanji/items/3f25b3fc50385b1f3bd0)

#### 管理画面実装Tips
* [OctoberCMS 管理画面実装テク：フォームに非表示フィールドを作る](https://qiita.com/pikanji/items/be03a3e3642567892d46)
* [OctoberCMS 管理画面実装テク：テキストフィールドの文字数制限を変更する](https://qiita.com/pikanji/items/884eb9438b706035673d)
* [OctoberCMS 管理画面実装テク：Soft Deleteしたデータの完全削除・復元するページを実装する](https://qiita.com/pikanji/items/a173e89babac1b8ba2b5)

参考リンク
[OctoberCMS公式サイト](http://octobercms.com/)
[OctoberCMSドキュメント](http://octobercms.com/docs/)
[OctoberCMS GitHub](https://github.com/octobercms/)
[Laravel5.5ドキュメント](https://laravel.com/docs/5.5)