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が少なすぎることにより、バックエンドが停止状態になるといったことは起きなくなります。
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の翻訳も表示します。
キーワードの最小長 #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.yml
やservices.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