Craft CMS の製品ライフサイクルについて

2022年5月4日に、Craft 4 がリリースされました。

Craft 4 | Craft CMS
https://craftcms.com/blog/craft-4

これから新たに採用するなら Craft 4 を選択すればいいのですが、様々な理由から Craft 3 で動いている既存サイトを早々にアップグレードできないケースもあると思います。では、いつまで気兼ねなく利用できるのでしょうか?

そこで、Craft CMS の製品ライフサイクルについて確認しておきましょう。

Craft CMS の検索インデックスを更新する

Craft CMS の管理画面で提供されている検索機能は、テンプレートや GraphQL、独自プラグインからも利用できるようになっています。

Searching | Craft CMS Documentation | 3.x
https://craftcms.com/docs/3.x/searching.html

フィールド単位でキーワード検索の対象にするかどうかを選択できるのですが、設定手順によってうまく検索結果に反映されないことがあります。

そこで、備忘録を兼ねて Craft CMS の検索インデックスをアップデートする方法についてまとめます。
これは Craft CMS Advent Calendar 2021 25日目の記事です。

Craft CMS でテンプレートのレンダリング時間を計測する

CMS の実装経験がある方であれば、その種類を問わず、テンプレートの書き方次第で出力にかかる時間が増減するのを一度は経験したことがあるのではないでしょうか?

その際、任意ブロックごとの処理で実際にどの程度時間がかかっているかを知ることができれば、効率的に改修できます。

そこで、今回は Craft CMS テンプレートのレンダリング時間を可視化する方法を2つご紹介します。
これは Craft CMS Advent Calendar 2021 15日目の記事です。

FTP クライアントとしてもオススメできる Beyond Compare

過去2回の記事で Craft CMS 環境を複製する方法システム設定を同期する方法についてご紹介しましたが、いずれの場合もユーザーによってアップロードされた「アセット」や制作サイドで管理する「テンプレート」などのファイルは FTP クライアントなどを利用して、適用前後の環境を同じ状態にする必要があります。

そこで、普段利用している Beyond Compare というツールをご紹介したいと思います。
これは Craft CMS Advent Calendar 2021 12日目の記事です。

「プロジェクト構成」で Craft CMS 環境のシステム設定を同期する

前回の記事では、Craft CMS 環境を丸ごと複製する方法をご紹介しました。

既存環境と全く同じ状態を再現したいのであればそれで事足りますが、「テスト実装で開発環境に新規追加したフィールドを本番環境にも適用したい」など、システムの設定内容だけをマージしたいときはその都度管理画面を操作して反映するのが一般的かと思います。

Craft CMS では「プロジェクト構成」と呼ばれる、プロジェクトの設定内容だけを別環境に適用できる仕組みが用意され、2つの環境の差異を比較的簡単に同期できるようになっています。

そこで今回は「プロジェクト構成」機能について解説したいと思います。
これは Craft CMS Advent Calendar 2021 7日目の記事です。

Craft CMS 環境を複製する

前回の記事の文末で「Craft CMS は比較的簡単に既存環境を複製できる」ことに触れました。
そこで、ここでは実際にどうすればいいのか具体的な手順を解説したいと思います。

機能の改修やアップデートの動作検証のため本番サーバーにテスト環境を用意したり、ローカル環境を構築したいときなどに参考にしてください。

これは Craft CMS Advent Calendar 2021 4日目の記事です。

Craft CMS を安全に利用するために

去る10月20日に Movable Type の脆弱性がアナウンスされました。

Movable TypeのXMLRPC APIにおける脆弱性(CVE-2021-20837)に関する注意喚起
https://www.jpcert.or.jp/at/2021/at210047.html

サポートが終了しているとはいえ、Movable Type 4.0 以上であれば速やかに対応が必要です。

Movable Type の XMLRPC API における OS コマンドインジェクションの脆弱性 (CVE-2021-20837) を悪用した攻撃被害に関する対応メモ | WWW WATCH
https://hyper-text.org/archives/2021/12/movable_type_xmlrpc_api_vulnerability.shtml

こちらのケースと同様、自分の身近なところでも被害に遭われた方がいて、従来より深刻だなと捉えています。
心当たりのある方もない方もご自身が携わるサーバーが該当しないか、ぜひ確認してみてください。

とはいえ、システムにバグが存在するのは仕方ありません。
大事なのは「より安全に利用できるよう」対策したり、日頃からメンテナンスすることですよね?

そこで、普段 Craft CMS を利用する際に気をつけていることをまとめてみます。
これは Craft CMS Advent Calendar 2021 1日目の記事です。

Craft CMS 向けのローカル環境を Apple Silicon 対応の Technical Preview 版 Docker Desktop で動くようにしてみた

これは Craft CMS Advent Calendar 2020 25日目の記事です。

去る12月16日に Apple Silicon 搭載の Mac に対応した Tech Preview of Docker Desktop for M1 が公開されました。正直「来年、少しでも早い時期にβ版が出ればいいな」くらいに思っていたので、嬉しい誤算です。

Download and Try the Tech Preview of Docker Desktop for M1 - Docker Blog
https://www.docker.com/blog/download-and-try-the-tech-preview-of-docker-desktop-for-m1/

早速試してみたところ、自分の使用範囲では問題なさそう。。。
ということで、利用にあたって必要となる設定ファイルのカスタマイズ方法について、備忘録を兼ねてまとめてみます。

Craft CMS のテストメールを MailHog で受信する

これは Craft CMS Advent Calendar 2020 23日目の記事です。

過去記事の「ローカル環境を Docker で構築してみた」で触れている通り、Docker を利用してローカル環境を用意しています。その際「スキルの問題で sendmail を利用できるようにするのが大変」というネックがあり、外部の SMTP 経由でシステムからの送信テストを行っていました。

とはいえ、「大量に送信テストしたい」とか「オフラインでも動作確認したい」などと考えるうちに、MailHog のコンテナを立ててメールの送受信テストはそれを利用するようになったので、その方法についてまとめてみます。

Craft CMS で編集画面の保存時にサムネイル画像を生成する

これは Craft CMS Advent Calendar 2020 20日目の記事です。

プラグインで拡張している場合を除き、Craft CMS では生成用のコードを記載したテンプレートに初めてアクセスしたタイミングでサムネイル画像が生成されます。とはいえ、ページ内に複数のサムネイル画像を必要としたり、CDN キャッシュに画像変形用の URL ではなく実際のファイルパスを含めたいなど、フロントエンドでリクエストされる前にあらかじめサムネイル画像のファイルを生成しておきたいときがあります。

そこで、Craft 3.5 から搭載された新しいフィールドレイアウト機能を利用して、エントリをはじめ任意のエレメントを管理画面で保存したタイミングでサムネイル画像を生成する方法をご紹介します。