TYPO3 V9 LTS - You’re The One That I Want 【翻訳】

今日では、1.5年間の専用作業を経て、スケジュールどおりに5つの中間スプリントリリースを公開する自主目標を達成しました。新しい主要バージョンTYPO3 v9 LTSがダウンロード可能になったことを誇りに思います。

TYPO3バージョン9.5はLTS(Long Term Support)リリースであり、100以上の新機能が搭載されています。この記事では、ビジネスユーザーとテクニカルユーザーの両方にとって最も重要な変更の概要を説明します。

イントロダクション

TYPO3は、技術的に成熟し、堅牢で、安全で、エンタープライズ機能が詰まっていることが常に知られています。
TYPO3の最新メジャーリリースには、数多くの新しいハイライトがあり、よく知られているコンテンツ管理システムがオープンソースソフトウェア開発の最前線に立っていることがもう一度示されています。
新しいLTSバージョンでは、バックエンド(管理インターフェース)のユーザビリティ機能の強化、エンドユーザのセキュリティとプライバシーの向上(例えば頭痛のないGDPRコンプライアンスの実現)、最新のパスワードハッシュアルゴリズム、ベストプラクティスのSEOオプション、さらにはるかに。
過去4週間で、最後の中間バージョン9.4と新しいメジャーバージョン9.5(「TYPO3 v9 LTS」とも呼ばれる)の間の安定化段階 - 機能の最終要素は完了しましたが、新しいものは何も開始されませんでした。
これは、LTSのリリースが堅牢で安定していることを確認し、何千ページものWebサイトを含むすべてのサイズと複雑さのウェブサイトを強化することができます。
この記事では、9.x Sprintの全リリースの主な変更点と、TYPO3 v9 LTSから期待できることをまとめています。

スピーキングURLの概念を破る

ネイティブURLルーティングは、「index.php?id = 123」のようなURIを人間が読める、きれいな人間の読めるパスに変更します。
通常これはページのタイトルに基づいています。
"/ team / about-us"と表示されます。
TYPO3コアは、すぐにページベースのURL処理をサポートします。
TYPO3のページレコードには、「URLセグメント」というフィールドがあります。このフィールドには、ページへのウェブサイトのフロントエンドパスが含まれています。
このフィールドは、ページレコードがバックエンドで編集されたときに表示され、「サイト構成」が事前に設定されている場合は、フロントエンドのページUIDに解決されます。
TYPO3では言語も考慮され、フロントエンド、バックエンドのプレビューリンクなどどこにでもスピーチURLが生成されます。
このタイプのURIを生成するためにサードパーティの拡張機能が不要になりました。
これは検索エンジン最適化の重要な機能でもあり、TYPO3 v9 LTSの次のすばらしい改善につながります。

検索エンジンの最適化(SEO)

良い方法SEOはサードパーティの拡張機能に依存するべきではなく、コアシステムによって提供されるべきであり、開発者が必要に応じて標準機能を拡張するオプションも提供するべきです。
TYPO3 v9 LTSでは、ページプロパティに設定されたメタタグがデフォルトでフロントエンドに表示され、追加の設定は不要です。
その背後には、新しいMeta Tag APIが近代的で高速な方法でこれを管理します。
インテグレータとエディタの方が明らかに改善されているのは、バックエンドのページプロパティの新しい「SEO」タブです。
検索エンジンにページをどのように索引付けするかを指示する最も重要なオプションが含まれています。また、バックエンドユーザーがOpen Graphデータのような情報を挿入できるようにします。
このプロトコルは、Twitter、Facebook、LinkedInなどの最新のソーシャルネットワークでサポートされています。
しかし、TYPO3 v9 LTSの新しいSEO機能はここで終わらない:これらは基本的なものだった!
TYPO3は、サイトと言語ごとに異なるサイトマップをレンダリングする可能性があるので、XMLのサイトマップをすぐに生成することもできます。
インテグレータは包括的​​な設定オプションでさまざまな側面を微調整でき、特定のレコードのサイトマップも生成することができます。例えばニュースレコード。
「SEO」システム拡張機能が有効になっている場合、ページへの正式なリンクが自動的に追加されます。
このアプローチの利点の1つは、重複するコンテンツのために検索エンジンがサイトにペナルティを課すのを防ぐことです。
多言語のTYPO3サイトでは、「hreflang」タグも自動的に追加されるようになりました。
新しいページタイトルAPIにより、インテグレータと開発者は、ページタイトルの表示方法を正確に制御できます。
可能なすべての設定オプションを考慮した複数ステップのフォールバックの概念が実装されています。
たとえば、サードパーティの拡張機能によって設定されたタイトル、ページプロパティで特定の設定をせずにエディタやタイトルから提供された特定のSEOタイトル、フロントエンドのタイトルタグとしてページ名を使用します。
拡張開発者は、数行のPHPコードしか必要としないAPIを使用してページタイトルを設定する独自のソリューションを構築することができます。

サイト管理

サイト管理モジュールは、インテグレータとサイト管理者がサイトのすべての側面を表示および管理できる1つの中心的な場所を提供します。

サイト構成

「サイト」モジュールを使用すると、バックエンドユーザーは、Webインスタンスの1つまたは複数のサイトのグローバル構成を追加および変更できます。
これには、ウェブサイトの言語、人が読める、SEOに優しいURL、ウェブサイトのエントリーポイント、一般的な設定など、さまざまなオプションが含まれています

機能のリダイレクト

リダイレクトを構成するために、「Redirects」という名前のサブモジュールが追加されました。
これらは特定のドメインに限定することができ、HTTP応答コードを簡単に設定することができます。
ソースパスを正規表現として表現することができ、HTTPSへのリダイレクトを強制することができます。

主なバックエンドの変更点

以前のバージョンのTYPO3で作業してきた方には、TYPO3 v9 LTSのバックエンドにログインするとすぐにいくつかの変更が表示されます。

ページツリー

パフォーマンスの最適化と最新のWebテクノロジーの活用は常に私たちの議題になっています。
非常に使いやすいページツリーは、現在SVGに基づいており、レンダリング時間が非常に長く、ユーザーは簡単にページを作成、名前変更、移動、および削除することができます。
すべてのExtJSコードが完全に削除され、TYPO3バックエンドは、TypeScript、Bootstrap、jQueryなど最新のモバイルフレンドリーなWebテクノロジーによって強化されました。

モーダルポップアップ

今日、モーダルポップアップは、最新のユーザーインターフェイスの第一の選択肢です。
TYPO3はこの設計パターンをバックエンドで一貫して使用して、ユーザーとの対話が必要なときにシステムとのやりとりを円滑にします。
この子ウィンドウでは、親アプリケーションの操作に戻る前にユーザーと対話する必要があります。
TYPO3では、今すぐ表示されます
ユーザーが保存されていない変更を確認する必要があるとき、またはページまたは類似のダイアログに追加されるコンテンツ要素を選択するとき。

さらなる改善

画像は、画像のEXIFメタデータに格納されている向きに基づいて、アップロード時に自動的に回転します。
新しい「Duplicate」ボタンが追加されました。このボタンを有効にすると、バックエンドユーザーはワンクリックでコンテンツ要素を複製できます。
「トグルスイッチ」が導入されました。これは見た目だけでなく、ユーザーが2つの状態を簡単に切り替えることを可能にする便利なツールです。
サムネイルイメージは非同期にロードされます(ファイルリストなど)。これにより、バックエンドでの作業がより迅速かつ円滑になります。
デバッグモードでは、すべてのFormEngineフィールドのフィールド名がバックエンドの管理ユーザーに表示されます。
これにより、バックエンドユーザーまたはユーザーグループの構成時に同じフィールド名が表示されるため、アクセス権を構成するプロセスが大幅に簡単になります。
TYPO3バックエンドのすべての変更と改善について説明することは、この記事の範囲を超えています。
バックエンドと一緒に作業してください。もう何もする必要はありません。それは確かです!

システムメンテナンスエリア

インストールツールは、TYPO3の重要なコンポーネントであり、システムの設定、システムと環境のチェックの実行、設定のテスト、ワンクリックで新しいコアバージョンへのインスタンスの更新などのオプションを提供します。
したがって、用語「Install Tool」は正確ではなく、モジュールには新しい名前が与えられました。システムメンテナンスエリア。
TYPO3のバックエンドにスムーズにツールを統合する改良されたルックアンドフィールの他に、「メンテナンス」、「設定」、「アップグレード」、および「環境」の4つのモジュールに分割されています。
これらのカテゴリを使用することにより、モジュールの背後にある機能の明確で論理的で明確な分離が達成され、ユーザーは必要な機能をより簡単に見つけることができます。
拡張機能の設定がExtension Managerからこのモジュールにも移動されました。
TYPO3のバックエンドとの緊密な統合にもかかわらず(ユーザーがバックエンドの「外部」ツールに実装されていることはほとんどありません)、システムメンテナンスエリアはスタンドアロンアプリケーションとして引き続きアクセス可能です。

フォーム要素の条件付きバリアント

ますます多くのウェブサイトがバージョン8.5(2016年12月)以降、TYPO3コアの一部として組み込まれている「フォーム」拡張機能(「フォームフレームワーク」とも呼ばれます)を使用しています。
このシステムエクステンションには別の壮大な新機能、条件付きバリアントが追加されました。
バリアントには条件があり、フォーム要素のプロパティを変更できます。
これにより、フォーム要素の値、バリデーター、フィニッシャーのオプションなどを操作できます。
条件に基づいて
典型的な使用例は次のとおりです。

  • 現在のフロントエンド言語に応じてフォーム要素の値を変換します。
  • 別のフォーム要素の値に応じて、バリデータを設定および削除します。
  • フィニッシャーの値は、フォーム要素の値に応じて設定します。
  • 特定のフィニッシャーと要約ページのフォーム要素を非表示にします。
  • フォーム要素の値に応じて、ワークフロー内のページ全体を非表示にします。
  • などなど。

包括的なドキュメントには、さらに多くの詳細と例が掲載されています。

管理パネル

「TYPO3管理パネル」は、実行時にTYPO3の内部プロセスをより詳細に把握します。
バックエンドユーザーがアクティブになると、パフォーマンスやキャッシュ統計、特定のページの設定などにアクセスできます。
ウェブサイトのフロントエンドにアクセスします。
管理パネルは、そのデザインと基礎となるコードとアーキテクチャーに関して改造されました。
視覚的外観は、論理的なモジュールとサブモジュールに分離することにより、システムの詳細にアクセスすることがより便利になるように近代化されました。
システムの最も重要な詳細が一目で示され、必要に応じて拡張情報を表示するオプションがあります。
このすべての上に、拡張者の作成者は、独自のモジュールを作成したり、既存のモジュールにサブモジュールを追加して心臓のコンテンツにすることができます。
結果は、TYPO3でこれまでに持っていたデバッグとプロファイリング機能と、最新のモダンでモバイルフレンドリーな管理パネルの外観を組み合わせたものです。

一般データ保護規制(GDPR)

GDPRは2018年5月に発効し、ホスティングやデータ処理に関する厳しい規則を課しながら、ユーザーに個人データの保護、透明性および管理に対するより多くの権限を与えることを目指しています。
業界をリードするエンタープライズコンテンツ管理システムであるTYPO3 v9 LTSは、管理者とインテグレータをサポートし、GDPRの完全準拠を実現します。
「機密」と分類されるべきデータの種類と種類、および保管期間(データ保持時間)を制御する多くの設定を構成することができます。
システムに保存されているIPアドレスは匿名化することができ、クッキーのないリンクを使用してYouTubeの動画を参照することができます。
さらに、非アクティブなフロントエンドおよびバックエンドのユーザーは、システムから自動的かつ不可逆的に取り外してすぐに使用できます。
これは、データの最小化の原則に照らしてあります。存在しないデータ(ユーザープロファイルを含む)は、セキュリティ違反の場合には侵害されません。

TYPO3のセキュリティを強化する

セキュリティは常に私たちの最優先事項の1つであり、わかっているように、アプリケーションのセキュリティを強化することは常に進行中のプロセスです。
したがって、TYPO3の新しいLTSバージョンがセキュリティ基準をさらに高くすることは驚くことではありません。

Webルート外部に格納されたファイル

TYPO3は、Install Toolセッションファイル、キャッシングフレームワークファイル、ロック関連ファイル、ロギングなどのファイルを保存するようになりました。
"var /"ディレクトリに保存します。
これらの非公開のファイルは、Webルートの外側に配置する必要があることは明らかです。
TYPO3のセキュリティをさらに強化する継続的な取り組みの一環として、 "var /"ディレクトリへのパスを環境変数TYPO3_PATH_APPとして設定できるようになりました。

プレーンテキストもMD5ハッシュされたパスワードもありません

バックエンドユーザーのクリアテキストパスワードのサポートは、4年以上前にTYPO3で廃止されました。
それ以来、TYPO3では塩漬けのパスワードが標準となっています。
TYPO3 v9 LTでは、プレーンテキストのパスワードのサポートは、フロントエンドユーザーであっても終了するようになりました。
TYPO3は、Argon2iPBKDF2などの業界最高レベルのアルゴリズムを備えたPHP Password Hashing APIを使用するようになりました。
MD5は、今日のパスワードを保護するために非常に安全でないとみなされ、標準のMD5ハッシュのサポートも廃止されました。
TYPO3インテグレーターがユーザーのパスワードを安全にするために必要なことはあまりありません。
ユーザーがログインすると、必要に応じてパスワードハッシュが自動的に更新されます。

インテグレータと開発者のためのキャンディ

CMSのランドスケープにある他の多くの競合システムとは異なり、TYPO3はカスタマイズに非常に柔軟性があり、オープンであるという名目上の名誉を持っています。
内部アーキテクチャー、いくつかの公開API、フック/シグナルにより、PHP開発者は顧客のニーズを完全に満たすソリューションを構築できます。
同時に、LTSのリリースでは、新しい最先端技術が導入されることが多く、CMSを使って開発者が楽しく旅することができます。
TYPO3 v9 LTSも同様の利点を提供します。以下の段落では、インテグレータと開発者のハイライトを説明します。

データベーステーブル作成の簡素化

デベロッパーは、エクステンションの "ext_tables.sql"ファイルのデフォルトのデータベース属性の多くを省略できるようになりました。
データベーススキーマアナライザは、TYPO3 v9 LTSのためによりスマート化され、管理フィールドのほとんどは自動的に作成されます。
"uid"、 "pid"、 "sorting"、日付と時刻の開始と停止、隠れたフラグや削除されたフラグなど
したがって、開発者はビジネスロジックにもっと重点を置くことができ、TYPO3は言語管理と作業領域に必要なシステム内部フィールドとフィールドの作成を処理します。

コンテキストAPI

TYPO3の以前のバージョンでは、システムのさまざまな部分からの多くのデータが散在していました。
TYPO3 v9 LTSは、これらのグローバルに利用可能なオブジェクト(TSFE、sys_page、BE_USERなど)を置き換えることを目指す新しいContext APIを導入しました。
完全なオブジェクトを公開するのではなく、APIの「側面」には関連性があり必要なプロパティのみが含まれています。
このコンセプトの主な目的は、グローバル変数を共通の構造化された論理的方法で集中化することです。

PSR-3、PSR-7およびPSR-15標準

PHP標準勧告(PSR)は、PHPフレームワークInterop Groupによって発行された仕様です。
この仕様に従って、ソフトウェアアプリケーションは、高品質のコーディング標準、ベストプラクティスのシステム設計、および独立したライブラリとの相互運用性を保証します。
TYPO3は、今年の初めに、フロントエンドとバックエンドの両方にPSR-15ミドルウェアを導入しました。これにより、TYPO3は市場で最初のエンタープライズコンテンツ管理システムの1つになりました。
TYPO3コアのすべてのWeb要求は、HTTPメッセージインターフェイスの標準であるPSR-7に準拠した応答を返します。
開発者は、ロギングの重要性を理解し、エラーを追跡し、重要なイベントを記録し、問題をデバッグするために共通のインターフェイスが重要になる可能性があります。
PSR-3標準では、TYPO3システム全体のすべてのロギング手順で使用されるPHPアプリケーションのロギングインターフェイスについて説明しています。

機能トグル

前述のTYPO3バックエンドのシステムメンテナンスエリアには、TYPO3インテグレータが必要に応じてコア機能を有効または無効にできる「機能トグル」という名前の機能が含まれています。
TYPO3 v9は、新しいAPIクラス「Features」と組み合わせて、開発者がレガシーバージョンの隣に新しい機能を構築し、インテグレータが新しい機能に切り替えるかどうかをいつでも制御できる簡単な方法を提供します。

Symfony ExpressionLanguageコンポーネント

TypoScriptの条件は長い歴史を持ち、広く使用されています。
さらに重要なステップとして、Symfony ExpressionLanguageコンポーネントをTYPO3 v9 LTSに導入しました。
ExpressionLanguageコンポーネントは特定の構文を使用し、フロントエンドとバックエンドのTypoScript条件にいくつかの強力な機能を追加します。
有用な変数と関数のセットは既にTYPO3コアに同梱されており、開発者は必要に応じてさらに拡張することができます。

メールキュー(SwiftMailer)

TYPO3 v9 LTSでは、SwiftMailerのキュー機能(「スプール転送」とも呼ばれます)を利用できるようになりました。
ほとんどの場合、開発者はすぐに電子メールを送信することを望んでいますが、特定の状況下では、電子メールをキューに入れて後で処理することは有益です。
パフォーマンス上の理由から。
これが可能になりました。メールはメモリやファイルに入れられます。
後者の場合、スプールされた電子メールの送信は、コマンド行呼び出しまたはスケジューラー・タスクによってトリガーされます。

簡単にTYPO3サイトをアップグレードする

私たちは、あるメジャーバージョンから次のメジャーバージョンへのアップグレードの重要性を理解しています。
このプロセスは、最小限の労力(特に1つのLTSから最新のLTSリリースまで)で可能な限りシンプルにする必要がありますが、しばしばインストールされたサードパーティの拡張機能に依存します。
私たちはTYPO3 v9 LTSに拡張スキャナを導入することで道を開いた。
このツールは、削除または廃止されたTYPO3コアAPIの使用法の拡張コードをスキャンするインタラクティブなインターフェイスを提供します。
結果は、TYPO3の次のバージョンへの移行を成功させるために何をすべきかについての詳細な概要です。
拡張機能で廃止予定のAPI呼び出しが使用されている場合、Extension Scannerは、この特定のコードを移行する方法に関する適切なドキュメントを提案します。

システム要求

すべての驚くべき新機能と改良点を読んだ後で、今すぐ新しいバージョンをチェックアウトするのを待つことはほとんどありません。
TYPO3 v9 LTSのシステム要件を見てみましょう - 将来の開発に注目しているエンタープライズシステムビルド。
TYPO3 v9 LTSには、PHPバージョン7.2とMySQL、MariaDB、PostgreSQL、Microsoft SQL Serverなどのデータベースサーバーとの最新テクノロジスタックが必要です。
一般的に使用されているWebサーバーはすべてサポートされています(Apache、nginx、Microsoft IISなど)。
少なくとも256MバイトのメモリをPHPに割り当てる必要があります。
インストール&アップグレードガイド」には、システム要件と推奨設定の詳細が記載されています。

TYPO3データベースサーバーなし

TYPO3 v9 LTSは、PHPでネイティブに利用可能な一般的な軽量でファイルベースのデータベースソリューションである「SQLite」もサポートしています。
SQLiteを使用すると、TYPO3 WebインスタンスはPHPでネイティブに実行できます。これは、比較的小さなTYPO3サイト、またはテストと開発のインスタンスのために。

ダウンロード

TYPO3をインストールするにはさまざまな方法があります。
伝統的な方法は、get.typo3.orgでソースパッケージをダウンロードすることです。
もちろん、現代的なアプローチを使用して、作曲家を使ってプロジェクトを設定することもできます。
詳しいインストール手順については、get.typo3.org/version/9および「インストール&アップグレードガイド」を参照してください。
LTSリリースとして、TYPO3バージョン9.5は9.xシリーズの最終バージョンを示し、1.5年間のメンテナンスとバグ修正、2021年10月までの少なくとも3年間のセキュリティアップデートを受けます。
TYPO3 GmbHは、2024年までTYPO3 v9 LTSの拡張サポートを提供しています。

TYPO3 V9 LTSの詳細

TYPO3 v9 LTSの新機能、変更点、および改善点については、「TYPO3新着情報」とSprint Releases v9.0〜v9.5のリリースノートをご覧ください。

了承

TYPO3コアチームは、このマイルストーンを実現させるための貢献者すべてに感謝したいと思います。
関係するすべての人がこのプロジェクトで重要な役割を果たしました。あなたの時間と熱意がなければ、私たちは今日の場所にはいません。
バグの報告、変更のレビュー、修正や新機能のテスト、インフラストラクチャの維持、セキュリティの確保、文書や記事の作成、編集、コピー編集、イベントの整理とスポンサー、コードスプリントへの参加、あなたの知識を共有し、他者をサポートし、TYPO3についての言葉を広めています。
TYPO3コミュニティは、この記事を作成する上での貴重なインプットとして、戦略的イニシアチブやTYPO3イベント、Inge Batemanに寄付した、または財政的に支援したスポンサーにも感謝しています。