NPO法人ベーサー・ファウンデーション事務局は4月19日、国産オープンソースCMS「baserCMS」をメジャーアップデートした「baserCMS5(baserCMS 5.0.0)」をリリースした。
baserCMSは、多くのウェブサイトに利用されている国産オープンソースCMS。今回のメジャーアップデートでは、CakePHPを最新版のCakePHP4系に刷新し、ヘッドレスに対応するCMSとした。このメジャーアップデートにより、baserCMSは従来のウェブサイト構築だけでなく、データAPIプラットフォームとしても利用できるようになる。
新機能
・REST API
ヘッドレス化の仕組みとして外部のアプリケーションよりアクセス可能なREST APIを備える。認証にはセキュアなJWTを採用し、安全な通信を実現。REST APIを利用することでマルチデバイスにも対応が可能となった。
・カスタムコンテンツ
管理画面においてノーコードでオリジナルコンテンツのフィールドを定義し、そのコンテンツに対する管理機能とフロントエンドに表示するための仕組みを提供。管理画面から登録したデータはREST APIで取得することも可能。これによりbaserCMS5はヘッドレスCMSとしても機能する。
・オートアップデート
オフィシャルのリリース情報を取得し、簡単にbaserCMSコアをアップデートできる機能。
・技術的なアップデート
・サービスクラスの導入
ビジネスロジックをモデルから分け、コントローラーからも切り離しやすくしてテスタブルにするため、サービスクラスを導入。サービスクラスは、CakePHP4.2で導入されたDIコンテナを利用しコントローラーに注入する。DIコンテナは、プラグインの開発でも利用することができるようになった。
・コアの疎結合化
baserCMSコアの機能をコアプラグインとしてプラグイン化する事で疎結合化を行ない、コアをコンパクトにし、メンテナンス性を高めている。不要な機能はオフにすることで、管理画面がシンプルとなり使いやすくできる。
・パッケージ管理の導入
baserCMSコア、およびコアプラグインは、CakePHPのプラグインとして開発しており、Composerで導入が可能。なお、各パッケージの依存関係もComposerで管理するようにしている。
・モノレポの導入
存在するコアプラグインは13個。この全てをモノレポ(MonorepoBuilder)でひとつのレポジトリにて統合管理している。これにより、リリース時には分割されたレポジトリにそれぞれ反映することが可能となり、Composerでは必要なパッケージだけを取得可能な状態としている。また、Javascriptにおいてはnpm workspaceを採用し、それぞれのコアプラグインで必要なJSパッケージを統合管理。