次期バージョンの Craft 3 について

これは Craft CMS Advent Calendar 2016 25日目の記事です。
今回は、Craft CMS の次期バージョンである Craft 3 について、簡単にまとめてみます。

Craft 3 とは

Craft 3 Dev Preview

Craft 3 Dev Preview | Craft CMS:
https://craftcms.com/3

Craft 3 は、現時点でα版が公開されています。

Craft 3 Dev Preview should not be used in production environments. It has more bugs than Pankot Palace.

と明記されている通り、あくまでもプレビューやプラグイン開発目的での利用にとどめておきましょう。(※パンコット宮殿云々は、インディージョーンズあたりが元ネタ・・・でしょうか?)

ただ、先日公開された公式サイトのニュース記事によると、Craft 3 は2017年の第一四半期にβ版、その後6〜9ヶ月程で安定版のリリースを予定しているようですので、実務レベルで使うのは来年後半あたりからになりそうです。

The State of Craft: End-of-2016 Edition | News | Craft CMS:
https://craftcms.com/news/state-of-craft-end-of-2016

気になるポイント

個人的に気になっている3つの特徴について、ご紹介します。

フレームワークの Yii 2 への移行

フレームワークの変更に伴い、レスポンスの高速化やメモリ使用量の軽減などの恩恵があります。

そもそも、Craft CMS 2 のベースである Yii 1.1 自体のサポートが2016年末で終了し、以降(少なくとも)2018年までセキュリティフィックスのみが提供されるとアナウンスされていますので、Craft 3 の正式リリース後は早めにアップグレードを検討した方がよさそうですね。

Update on Yii 1.1 support and end of life | News | Yii PHP Framework:
http://www.yiiframework.com/news/90/update-on-yii-1-1-support-and-end-of-life/

参考までに。。。
現行バージョンは Craft CMS 2.6.x のメンテナンスのみが予定されている模様です。

Craft 3 is Back in Action | News | Craft CMS:
https://craftcms.com/news/craft-3-is-back-in-action

マルチサイト対応

Craft 3 では、異なるドメインのサイトや言語ごとにディレクトリを分けるなど、1つのシステムで複数サイトを管理できるようになります。既に多言語化している場合、(自分が試した範囲だと)テンプレートを変更することなくマルチサイトに移行できるようです。

なお、これまで多言語対応は Pro ライセンスのみに提供される機能でした。
マルチサイト機能になるとライセンスによる制限がなくなり、Personal / Client ライセンスでも利用可能な点もありがたいですね。

ElementQuery クラスへの移行

Craft 3 では、ElementCriteriaModel クラスなどが廃止され ElementQuery クラスに集約されます。

より詳細なフィルタリングをする場合、現状だと下記のリンク先で解説されているように DbCommand クラスをプラグインで拡張して SQL クエリを操作するといった工夫が必要です。

Craft CMS: Building Complex Queries by Extending the ElementCriteriaModel:
https://blog.tighten.co/craft-cms-building-complex-queries-by-extending-the-elementcriteriamodel

ElementQuery になると、beforePrepareafterPrepare メソッドを拡張する形で SQL を調整できるようになるそうです。

The Future of Plugin Dev:
http://www.slideshare.net/brandonkelly212/craft-3-dev-workshop

Development changes in Craft 3 - Straight Up Craft:
https://straightupcraft.com/articles/development-changes-in-craft-3/

現行の ElementCriteriaModel と同様に、テンプレート側でも調整できる仕組みが提供されるだろう・・・と期待していますので、実現すれば自由度がさらに上がりますね。

ElementCriteriaModel | Templating Reference | Craft CMS:
https://craftcms.com/docs/templating/elementcriteriamodel

まとめ

次期バージョンの Craft 3 について、気になるポイントをまとめてみました。
サードパーティ製プラグインの対応状況にもよりますが、ますます便利になりそうなので、早く使ってみたいところですね。

さて、2週間に渡って Craft CMS 関連の記事をまとめてみましたが、いかがでしたでしょうか?
ローカル環境の用意からテンプレートの調整まで、全体を通しても早ければ1〜2日で終わるハズですので、年末年始に空いた時間があれば、ぜひ試していただけると嬉しいです。

検索ページ向けのテンプレートの書き方や多言語対応をはじめ、書き足りない内容については後日改めてご紹介できればと思っています。

なお、Craft CMS の導入でお困りの際は、BUN も所属する bit part にご相談くださいませ。(※宣伝です w)