Contao 4.11.0を利用可能
2021年2月17日 11:54 Leo Feyer
Contaoバージョン4.11.0を利用できます。このリリースではPHP 8とSymphony 5のサポート、動的なXMLサイトマップ、バックエンドをカスタマイズする単純化した方法、新しい"figure"挿入タグ、DCAで独自の正規表現、さらに多数の新しい機能を含んでいます。
PHP 8
PHP 8のサポートは予想よりも複雑でした、というのもPHP8ではかなりの数のウォーニングが再分類(https://wiki.php.net/rfc/engine_warningsを参照)されて、以前はE_NOTICEとして無視されていたメッセージが急にE_WARNINGとしてコードの実行を妨げる様になったためです。特に、DCAと関連した未定義の配列のプロパティへのアクセスが主要な問題となりました。実際、このための最初のプルリクエストは単独で100個を超えるファイルに1,800以上の変更を含んだものでした。
大量の変更と予想していた副作用が原因で、元々予定していたContao 4.9 LTSにPHP 8のサポートを含めることを取り止め、Contao 4.11の新しい機能とすることにしました。
Contao 4.9 LTSへの注意
Contao 4.9 LTSは2024年2月まで保守されますが、2022年より後はPHP 7の迅速なリリースはありませんので、Contao 4.9 LTSはPHP 8でも動作するようにしなければならないのは明白です。そこで、Contao 4.9.10ではPHP 8にインストールした場合はE_WARNINGを自動的に無視する様にしました。アプリでcontao.error_level
を独自に修正している場合は、この変更をContao 4.9をPHP 8で動作させるために適用する必要があります。
リソース: #2568, #2594, #2599, #2606, #2679
動的なXMLサイトマップ
動的なサイトマップはサーバー上の静的なファイルに書き出さないようにし、/sitemap.xml
のルートが呼び出された時の状況に応じて生成し、HTTPキャッシュに保存するようにしました。この方法で、保護したページをContaoのクローラーが見つけて、検索インデックスに含めることが可能になりました。
新しいContaoCoreEvents::SITEMAP
イベントを使用して出力を修正できます。
リソース: #2295
バックエンドのカスタマイズ
Contaoのバックエンドのカスタマイズを様にするために、いくつかの構成オプションを追加しました:
# config/config.yml
contao:
backend:
attributes:
app-name: Foobar
app-version: 1.2.3
badge_title: staging
custom_css:
- files/backend/custom.css
custom_js:
- files/backend/custom.js
attributes
はbodyタグのデータ属性として追加します。badge_title
はログインとバックエンドに表示し、例えばステージングとプロダクションの環境の区別するといったことを可能にします。
リソース: #1999
"figure"挿入タグ
既存の{{image}}と{{picture}}挿入タグに加えて、Contao 4.11は{{figure}}挿入タグを追加しました。これはContaoのImage Studioフレームワークが提供する図表ビルダーを使用します。3つの挿入タグは以下の様に異なります:
- {{image}}: 単独のレスポンシブでない<img>タグを出力
- {{picture}}: レスポンシブな画像を出力しますが、メタデータは無視
- {{figure}}: すべてのメタデータを含んだlt]figure>要素を出力
加えて、figure()
メソッドを独自のテンプレートで使用できます。
プレビューURLのコピー
プレビューバーに/preview.php
の部分を含まない現在のURLをコピーできる新しいボタンを追加しました。これはURLの共有やさらに処理したい場合に利用できます。
リソース: #1301
FAQでページの題名の上書き
ニュースやイベントと同様に、Contao 4.11はFAQ毎にページの題名、説明、ロボットの設定を上書きできる様にしました。
リソース: #1779
バックエンドでTwigファイルの編集
Contaoでは保守モードのテンプレートといったTwigファイルは、テンプレートエディターでbundles/ContaoCoreBundle/Error
フォルダーを作成してservice_unavailable.html.twig
ファイルを保存することでカスタマイズできました。Contao 4.11からは、これらのTwigファイルもバックエンドで直接編集できるようにしました。
リソース: #2051
独自の正規表現
DCAのrgxp
キーでフォーム項目に求める入力を指定できました。Contao 4.11では、httpurl
とcustom
オプションを追加しました。最初のオプションは入力がhttp://またはhttps://で始まる絶対URLかどうかを確認し、次のオプションはcustomRgxp
キーで独自の正規表現を保持できます。
contao.image.sizesの初期値
appの構成で複数の画像サイズを定義するとき、以前は同じ設定を何度も繰り返してコピーせざるを得ませんでした。_defaults:
のキーワードで、すべての画像サイズに適用する設定を定義できるようにしました。
# config/config.yml
contao:
image:
sizes:
_defaults:
formats:
jpg: [webp, jpg]
resize_mode: crop
large_photo:
width: 1000
height: 500
medium_photo:
width: 500
height: 250
small_box:
width: 100
height: 100
resize_mode: box