弊社での「October」利用について紹介します。
「October」とは、PHPのLaravelフレームワークを基盤としたオープンソースのCMS型プラットフォームです。簡単に言えば、WordPressのようなWebページ側のフロントエンドと管理側のバックエンドを持つCMSシステムです。
日本ではまだまだポピュラーではないですが、海外では結構人気が高いようです。
公式サイト:October – PHP CMS platform based on the Laravel Framework
2年程前に「記事投稿型WEBサイト」リプレイスのお話があり、その際にこのOctoberを使って構築したのがきっかけで、それ以降Octoberを使ってシステム構築する機会が増えました。特に、業務システムやバックエンド的な管理システムを構築するときに重宝しています。
また、弊社の特殊な使い方かもしれませんが、Octoberのフロントエンド部分(CMS)は使用していません。バックエンド部分のみです。DBへの入出力画面(CRUD)として、割り切った使い方をしています。個人的にOctoberのバックエンド部分は、完成度が高く、業務管理システムフレームワークとして非常に使いやすいと感じています。
それではどのように使いやすいのか? 簡単ですが下記に列挙します。
1. 必要機能群がデフォルト搭載
業務管理システムとして、必須であるユーザ管理等の機能ですが、Octoberのbackendでは下記機能群が標準で備わっています。
- ログイン画面
- ユーザ管理
- 権限&ロール管理
- メディア管理
- ログ管理
- 共通レイアウト(グローバルメニュー等)
これらの機能を1からスクラッチで作るとなると当然それなりに工数が掛かりますが、Octoberはインストールするだけで完了です。これだけでも、かなりの工数削減となります。
2. UIの完成度が高い
backendの画面構成は、上部にグローバルメニューがあり、左部にグローバルメニューに紐づいたサイドバーが表示、そしてメイン画面(機能画面)の構成です。メイン画面は、リスト形式、フォーム形式、ソート形式の3種類があり、主に仕様されるのはCRUDを形成するリスト形式とフォーム形式の画面になります。
画面構成、画面ともにシンプルで直感的に分かりやすく操作性が高いものになっています。ユーザーからするとUI周りは重要なポイントです。
また開発者目線としても、画面周りは設定とcssを当てるだけで簡単にキレイな画面が作成できます。デザインが苦手なエンジニアも多いなか、デザインの労力から解放されることは大きなメリットではないでしょうか。
3. ローコードでサクサク作れる
Octoberは各種yamlファイルでの設定が基本になります。画面レイアウト、項目設定、画面遷移、これらはyamlファイルの設定だけで完結し、単純なCRUDであれば処理を一切書かずとも作成できてしまいます。
4. 柔軟性があり自由度が高い
製品やパッケージによくありがなのが、「痒いところに手が届かない」部分があること。ちょっと標準から外れたら、とたんに小難しくなる、または全く対応できない、といったケースです。
Octoberでは、あまりそのようなケースに出会うことがありません。
必要十分なイベントが用意
Octoberでの処理の記述は、標準イベント内に必要に応じて処理を書いていきます。CRUD機能に必要なイベント群が既に用意されているため、コード量も少なく済みます。
柔軟なDBデータ処理
DB処理(SQL)に関しても、融通が利かないモデルクラスやORラッパーも多いなか、Octoberは「Larabelクエリビルダ」です。Larabelで開発を行った方は分かると思いますが、クエリビルダはかなり柔軟に対応できます。
最悪ゴリゴリ書ける
画面レイアウトや基本処理などはyamlでのファイル定義、必要な業務ロジック等もイベント内に記述するだけですが、ちょっと入り組んだ画面レイアウトや共通的な処理、Excelエクスポート処理など、標準以外の機能もPHPで記載すれば作れてしまいます。
「これができない・・・」ということがほぼ無いことが、Octoberの魅力だと思います。
5. 挙動が安定している
目立ったバグがなく動作が安定しているのも大きなポイントです。当たり前ですが「想定した通りに動く」というのは重要なことです。製品やフレームワークのなかには、想定した通りに動かないのも多いので・・・。
Octoberでは、クエリビルダでテーブルを結合したときに、条件によってはテーブル名の解釈が上手くいかずエラーを発生するケースもありましたが、自分が知る限りそれぐらいでしょうか。
挙動が安定しているせいか、ほとんどアップデートがないのも特徴です。それだけ既に完成度が高いのかもしれません。
最後に
いろいろとOctoberについてのメリットを書いてきました。逆にデメリットは?という疑問もあるかと思いますが、今のところデメリットが浮かばないのが正直なところです。あえて言えば、「日本語の情報が少ない」ところでしょうか。公式ページに英語でのWEBドキュメントがあるので、それほど困ることが無いのですが、最初に取り扱うときはちょっと敷居が高いのかもしれません。
Octoberとは何か、何ができるのかを調べていたら偶然たどり着きました。
概要を参考にさせていただきます!