Contao 4.8.0を利用可能

2019年8月15日 13:58 Leo Feyer

Contaoバージョン4.8.0を利用できます。このリリースは延期した画像の大きさ変更、フロントエンドでの2ファクター認証、YouTubeとVimeo動画のスプラッシュ画面、アノテーションによるサービスのタギング、さらに多数の新しい機能を含んでいます。

以下の機能の多くの情報はさらにYanick's recap of the developer's meetingの記事あります。

画像の大きさ変更の延期 #354

Contao 4.8では、サムネールの作成は延期して行われてページの描画の過程では行われません。これはページの読み込みを非常に速くするだけではなく、実際に要求のあった画像だけを生成することを可能としています。これで異なる解像度(例: 等倍、1.5倍、2倍)の元の画像を用意することなく、機器に合致した画像だけを生成します。

このため、ファイル管理でユーザーが誤って「全てを切り替え」をクリックした時に、すべてのサムネイルをスクリプトが生成するにはRAMが少なすぎることにより、バックエンドが停止状態になるといったことは起きなくなります。

画像のサイズ変更の延期と画像の読み込みの遅延、スクロールにより画像が表示域に入った場合だけ読み込むを取り違えないでください。画像の読み込みの遅延は、ブラウザーが直接サポートすればすぐに実装します。(#433を参照)

フロントエンドでの2ファクター認証 #363

Contao 4.6から、バックエンドは2ファクター認証によりアカウントを安全にできました。同じ機能がフロントエンドのユーザーも利用できる様になりました。管理者はウェブサイト毎に2ファクター認証を全員に対してオプションとするか、必須とするか指定できます。

HTTPキャッシュ

不要なクッキーは共有キャッシュにページを保存する妨げになり、HTTPキャッシュを効果的に使用する場合の最後の大きな障壁でした。Contao 4.8では、この問題を少なくともコア配布については解決しました。関係するチケットの数から、これにどれだけの作業が費やされたか推測できるでしょう: #351, #365, #389, #467, #468, #471, #482, #483, #515, #551, #553, #565, #594

今回初めて、ContaoはVarnishの様なリバースプロキシと完全に互換となりました。以下のグラフはContao 4.7とContao 4.8でそれぞれキャッシュの有無によるページの描画時間を示しています:

数値の絶対値は重要ではありません、何故ならサーバーの作業負荷といった多くの技術的な要因に依存するからです。しかし、相対的な比較でキャッシュを使用したContao 4.7よりも、Contao 4.8はページの描画が約40%速いことがわかります。

改善したデバッグモード #544

Contao 4.8でバックエンドで単純なマウスのクリックだけでデバッグモードを有効にでき、最初にパスワードの設定が必要なapp_dev.phpファイルの使用は不要です。さらに、デバッグのバーは「翻訳」のセクションにContaoの翻訳も表示します。

改善した画像の処理 #529 #552

Contao 4.8では、アップロードした画像はEXIFデータを元に自動的に回転します。また、Contaoは画像の最適化したWEBP版を作成し、要求があれば自動的にpicture要素に追加します。最新のブラウザーは最適化した画像だけを読み込みます。

キーワードの最小長 #274

Contao 4.8では最小の長さに満たないキーワードを無視する様に構成できるようになりました。

最初に特別なニュース #371

「ニュースリスト」のモジュールに特別なニュース項目を通常の項目より先に表示するオプションを用意しました。

Contaoの構成要素 #332

Contao 4.8ではいくつかのContaoの構成要素を削除しています、何故ならそれらは時代遅れになっていたか、ブラウザーが元々実装しているためです。

Symfony 4のフォルダー構成 #566

Symfony 4では、構成ファイルは/app/configの代わりに/configフォルダーに保持しています。Contao 4.8でも古い場所のサポートを続けていますが、/appフォルダーの使用は非推奨で、もはや推奨できる場所できません。

  • 独自のSymfonyの構成ファイル(例: config.ymlservices.yml)は/configフォルダーに置き、今後は/app/configフォルダーに置くべきではありません。
  • 独自のContaoのファイル(例: DCAファイル、翻訳、テンプレート)は/contaoに置き、今後は/app/Resources/contao/src/Resources/contao フォルダーに置くべきではありません。

アノテーションによるサービスのタグ付 #540

サービスをservices.ymlファイルでフック、コールバック、コードの断片でタグ付する代わりに、Contao 4.8ではアノテーションでタグ付できます。

use Contao\CoreBundle\ServiceAnnotation\Hook;
use Terminal42\ServiceAnnotationBundle\ServiceAnnotationInterface;

class MyListener implements ServiceAnnotationInterface
{
    /**
     * @Hook("getPageLayout")
     */
    public function onGetPageLayout()
    {
    }

    /**
     * @Hook("loadPageDetails", priority=32)
     */
    public function onLoadPageDetails()
    {
    }
}

バンドルのドキュメントを次から参照できます: terminal42/service-annotation-bundle

独自の選択の挿入タグ #450

Contao 4.8では、選択の挿入タグの初期値を上書きでき、例えば文脈に依存した異なるタグを使用できます。

// link_urlタグに|absoluteフラッグを追加
'eval' => [
    'dcaPicker' => [
        'insertTag' => '',
    ],
],

// 文脈に応じてlink_urlまたはnews_urlタグを使用
'eval' => [
    'dcaPicker' => [
        'pagePicker' => [
            'insertTag' => '',
        ],
        'newsPicker' => [
            'insertTag' => '',
        ],
    ],
],

定義済みの画像サイズ #537

バージョン化と再利用をしたい場合、画像サイズは構成ファイルでも定義できます。

contao:
  image:
    sizes:
      foobar:
        width: 100
        height: 200
        resizeMode: 'box'
        zoom: 100
        cssClass: 'foobar-image'
        densities: '1x, 2x'
        sizes: '100vw'
        items:
          - width: 50
            height: 50
            resizeMode: 'box'
            zoom: 100
            cssClass: 'foobar-image'
            densities: '0.5x, 2x'
            sizes: '50vw'
            media: '(max-width: 900px)'
          - width: 25
            height: 25
            resizeMode: 'box'
            zoom: 100
            densities: '0.5x, 2x'
            sizes: '25vw'
            media: '(max-width: 450px)'

汎用のDCAラベル #532

Contao 4.8では、各DCAの項目のアクションと項目にラベルを追加する必要はありません。Contaoはキーから自動的にラベルを検索し、それぞれの言語ファイルに定義がない場合は汎用のアクションを代替とします。

このため、以下の例でコメントアウトしてある行は削除できます:

'list' => [
    'operations' => [
        'edit' => [
//          'label'     => &$GLOBALS['TL_LANG']['table']['edit'],
            'href'      => 'act=edit',
            'icon'      => 'edit.svg'
        ],
    ],
],
'fields' => [
    'title' => [
//      'label'         => &$GLOBALS['TL_LANG']['table']['title'],
        'exclude'       => true,
        'inputType'     => 'text',
        'eval'          => array('mandatory'=>true 'tl_class'=>'w50'),
        'sql'           => "varchar(255) NOT NULL default ''"
    ],
],

そしてさらにたくさん

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

更新の注意

Martin氏は画像ライブラリcontao/imageのバージョン1.0をリリースしました。いくつかのAPIの変更がありますから、このライブラリを使用している場合は確認してください。

さらに、Contao 4.8以降は携帯機器用のページレイアウトはコア配布には含まれていません。この機能が必要な場合は、contao/mobile-page-layout-bundleパッケージをContao Managerまたはコマンド行(composer require contao/mobile-page-layout-bundle)からインストールしてください。携帯機器用のページレイアウトを使用すると、HTTPキャッシュを使用できないことに注意してください。

Symfonyの互換性

Contao 4.8は次のバージョンのSymfonyと互換性があります: 4.2, 4.3


Contao 4.8.0 is availableの翻訳です。