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()メソッドを独自のテンプレートで使用できます。

リソース: #2607, #1937

プレビュー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では、httpurlcustomオプションを追加しました。最初のオプションは入力がhttp://またはhttps://で始まる絶対URLかどうかを確認し、次のオプションはcustomRgxpキーで独自の正規表現を保持できます。

リソース: #2297, Docs

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

Resources: #2243

そしてさらにもっと

他の変更の概要は変更履歴から参照できます。

Symfonyの互換性

Contao 4.11はSymfony 4.4からSymfony 5の過渡的なバージョンのために設計されて、このためSymfonyの両方のメジャーバージョンに互換性があります。両方のプロジェクトのLTSバージョンも一緒にすることを目標としています、すなわちContao 4.9 LTSはSymfony 4.4 LTSで、Contao 4.13 LTSはSymfony 5.4 LTSで動作します。

こちらも参照: チケット | 比較表示 | 変更履歴


Contao 4.11.0 is availableの翻訳です。