BLOG

[Craft CMS Advent Calendar 2018] Craft CMSの個人的に好きなところ3つ

2018-12-10 15:17:00

Craft CMS

Craft Cms Logo

Craft CMS Advent Calendar 2018の12/10担当です。個人的に好きなところを3つあげてみました。

Yii2ベース

Craft CMSYii2ベースで開発されています。よって、Yii2のようにMVCパターンでプラグイン開発やカスタマイズを行うことができます。Controllerでリクエストを処理して、Modelを用意し、Viewにレスポンスを渡す、という流れをCraft CMSで利用することができます。(MVCパターンを使わなくても、ある程度のものならテンプレート内で完結できます)
Yii2のモジュール
も利用できるので機能別などで切り分け・再利用しやすくなっています。プラグインやモジュールでの拡張方法についてCraft CMSのドキュメントに詳しく記載してあります。

テーマ&デフォルト投稿タイプがない

WordPressなど各CMSには『テーマ』があり、たくさんの人たちがオリジナルテーマを開発・配布・利用しています。これはとても便利で、簡単に素敵なデザイン・レイアウトのサイトを構築することができます。ところが、Craft CMSにはテーマがなく自分でテンプレート(HTML)を作成する必要があります。また、デフォルトで用意された投稿タイプがなく、自分で投稿タイプを作成しなければいけません。これはインストールしてすぐに使える状態にできないデメリットでもありますが、とても自由にコンテンツを作成することができます。テンプテートエンジンにはTwigが使われており、普段Symfonyをさわる機会が多いぼくにとってはありがたいです。(TwigはDrupal8でも採用されています。)
普段サーバサイドの開発がメインでフロントエンドはさっぱりなため、デザインやコンテンツ制作は他の人にお願いしているんですが、PHPフレームワークを使って開発している時と同じ感覚でデザイナー・コンテンツ制作の人たちと分業ができてやりやすいです。

マイグレーション機能がある

Yii2のマイグレーションを使うことができ、投稿タイプへのフィールドの追加、データの追加・更新・削除、テーブルの作成・更新・削除などをデータベースへの更新を行うことができます。Webサイトを運用していく上で、なんらかの変更は不可避です。開発環境などで開発をおこなった上で本番環境へ反映することになると思いますが、データベースの更新が絡むものは実行、管理がなかなか面倒です。マイグレーションを使うことでデータベースへの更新にどのようなものがあるか設定しておけば、コマンド1発でデータベースへ更新が完了しますし、本番への反映も簡単に行えます。また、何かしら不具合が起きた場合にロールバックすることができるのも大きなメリットだと思います。


まとめ

と、おもに好きな部分3つをあげてみました。個人的にはCraft CMSは『CMSの機能を使うことができるPHPのフレームワーク』的な位置付けです。2019年は個人でもお仕事でももっと利用していけたらいいなと思いますし、知見を共有できるようにMeetupなどやっていけたらなと思います。