この TYPO3 拡張機能により、フロントエンド開発者は純粋な Fluid でカプセル化されたコンポーネントを作成できるようになります。統合用の明確なインターフェイス (API) を定義することで、フロントエンド開発者はバックエンド開発者から独立してコンポーネントを実装できます。目標は、副作用がなく、データ取得を担当しない、再利用性の高いプレゼンテーション コンポーネントを作成することです。
TL;DR?今すぐ始めましょう
流体テンプレートは通常、次の 3 つの要素で構成されます。
さらに、 ViewHelpers は基本的な制御構造を提供し、他の方法では不可能な高度なレンダリングとデータ操作をカプセル化します。これらは PHP クラスとして定義されます。
この拡張機能は、別のコンポーネントを Fluid: Componentsに追加します。
fluid components ViewHelpers に似ています。主な違いは、Fluid 内でのみ定義できることです。ある意味、これらは Fluid のパーシャルに非常に似ていますが、いくつかの利点があります。
次のコンポーネントは、単純なティーザー カード要素を実装します。
コンポーネント/TeaserCard/TeaserCard.html
< fc : component >
< fc : param name = " title " type = " string " />
< fc : param name = " link " type = " Typolink " />
< fc : param name = " icon " type = " string " optional = " 1 " />
< fc : param name = " theme " type = " string " optional = " 1 " default = " light " />
< fc : renderer >
< a href = " {link} " class = " {component.class} {component.class}-{theme} " >
< h3 class = " {component.prefix}title " >{title}</ h3 >
< f : if condition = " {content} " >
< p class = " {component.prefix}description " >< fc : slot /></ p >
</ f : if >
< f : if condition = " {icon} " >
< i class = " icon icon-{icon} {component.prefix}icon " ></ i >
</ f : if >
</ a >
</ fc : renderer >
</ fc : component >
テンプレートで次のコードを使用して、TYPO3 に関するティーザー カードをレンダリングします。
{namespace my=VENDORMyExtensionComponents}
< my : teaserCard
title = " TYPO3 "
link = " https://typo3.org "
icon = " typo3 "
>
The professional, flexible Content Management System
</ my : teaserCard >
結果は次の HTML になります。
< a href = " https://typo3.org " class = " smsExampleTeaserCard smsExampleTeaserCard-light " >
< h3 class = " smsExampleTeaserCard_title " >TYPO3</ h3 >
< p class = " smsExampleTeaserCard_description " >The professional, flexible Content Management System</ p >
< i class = " icon icon-typo3 smsExampleTeaserCard_icon " ></ i >
</ a >
(読みやすくするためにインデントを改善しました)
TER またはコンポーザー経由で拡張機能をインストールします。
composer require sitegeist/fluid-components
ext_localconf.phpでコンポーネントの名前空間を定義します。
$ GLOBALS [ ' TYPO3_CONF_VARS ' ][ ' EXTCONF ' ][ ' fluid_components ' ][ ' namespaces ' ][ ' VENDOR \ MyExtension \ Components ' ] =
TYPO3 CMS Core Utility ExtensionManagementUtility:: extPath ( ' my_extension ' , ' Resources/Private/Components ' );
VENDOR
には独自のベンダー名を、 MyExtension
には拡張名を、 my_extension
には拡張キーを使用します。
ファイルMyComponent.htmlを含むディレクトリMyComponentを作成して、 EXT:my_extension/Resources/Private/Components/に最初のコンポーネントを作成します。
「コンポーネントはどのように見えますか?」に従ってコンポーネントを定義して適用します。拡張ドキュメントも役立ちます。
コンポーネントの品質と再利用性を向上させるには、 fluid componentsの生きたスタイルガイドである Fluid Styleguide とfluid componentsリンターを確認してください。
質問がある場合、サポートが必要な場合、または TYPO3 のコンポーネントについて議論したい場合は、お気軽に #ext-fluid_components に参加してください。
機能のリファレンス
ハウツー
このパッケージの開発と公開リリースは、私の雇用主 https://sitegeist.de から多大な後援を受けています。