Skip to content
これは pieceofcake2/twig-view のドキュメントです。pieceofcake2/cakephp 用の CakePHP 2.x プラグインです。 このフォークについて

機能リファレンス ​

pieceofcake2/twig-view で使えるすべての Twig のフィルター、関数、テスト、タグです。

クイックナビゲーション ​

  • フィルター - 値を変換します: {{ value|filter }}
  • 関数 - 値を生成します: {{ function() }}
  • テスト - 条件をチェックします: {% if value is test %}
  • タグ - 制御構造です: {% tag %}
  • CakePHP のヘルパー - ヘルパーにアクセスします: {{ helper.method() }}

フィルター ​

Twig 3.x の組み込みフィルター ​

リファレンス: https://twig.symfony.com/doc/3.x/filters/index.html

文字列フィルター (cakephp/twig-view 由来) ​

実装済み:

  • tokenize
  • insert
  • clean_insert (エイリアス: cleanInsert)
  • wrap
  • wrap_block (エイリアス: wrapBlock)
  • word_wrap (エイリアス: wordWrap)
  • highlight
  • tail
  • truncate
  • excerpt
  • to_list (エイリアス: toList)
  • strip_links (エイリアス: stripLinks)

未実装:

  • substr - ❌ 代わりに Twig の組み込みの slice フィルターを使ってください

語形変化フィルター (cakephp/twig-view 由来) ​

実装済み:

  • pluralize
  • singularize
  • camelize
  • underscore
  • humanize
  • tableize
  • classify
  • variable
  • slug

数値フィルター (cakephp/twig-view 由来) ​

実装済み:

  • to_readable_size
  • to_percentage
  • format_delta (エイリアス: formatDelta)
  • currency
  • precision

未実装:

  • number_format - ❌ 代わりに Twig の組み込みの number_format フィルターまたは format_number フィルターを使ってください

ユーティリティフィルター (cakephp/twig-view 由来) ​

未実装:

  • utf8 - ❌ ビューの責務ではありません。コントローラーで適切なエンコーディングのデータを用意してください
  • ascii - ❌ ビューの責務ではありません。コントローラーで適切なエンコーディングのデータを用意してください
  • low - ❌ Twig の組み込みの lower フィルターを使ってください (後方互換性のため Legacy には残っています)
  • up - ❌ Twig の組み込みの upper フィルターを使ってください (後方互換性のため Legacy には残っています)
  • env - ❌ ビューの責務ではありません (後方互換性のため Legacy には残っています)
  • serialize - ❌ ビューの責務ではありません。コントローラーでデータを用意してください
  • unserialize - ❌ ビューの責務ではありません。コントローラーでデータを用意してください
  • md5 - ❌ ビューの責務ではありません。コントローラーでデータを用意してください
  • base64_encode - ❌ ビューの責務ではありません。コントローラーでデータを用意してください
  • base64_decode - ❌ ビューの責務ではありません。コントローラーでデータを用意してください
  • string - ❌ 不要です。Twig が __toString() で自動的に変換します
  • is_multibyte - ❌ 代わりに multibyte テストを使ってください: {% if text is multibyte %}

I18n フィルター (pieceofcake2/twig-view 独自) ​

  • trans

CakePHP ベースで、Symfony 風のインターフェイスです

レガシーフィルター (cakephp/legacy-twig-view:<2 - ⚠️ 非推奨) ​

未実装:

  • ago - ❌ {{ time.timeAgoInWords(date) }} を使ってください
  • size - ❌ to_readable_size を使ってください
  • p - ❌ precision を使ってください
  • curr - ❌ currency を使ってください
  • pct - ❌ to_percentage を使ってください
  • low - ❌ Twig の lower を使ってください
  • up - ❌ Twig の upper を使ってください
  • debug - ❌ Twig の dump() を使ってください
  • pr - ❌ Twig の dump() を使ってください
  • env - ❌ コントローラーから渡してください

関数 ​

Twig 3.x の組み込み関数 ​

リファレンス: https://twig.symfony.com/doc/3.x/functions/index.html

I18n 関数 (pieceofcake2/twig-view 独自) ​

実装済み:

  • __
  • __d
  • __n
  • __x

数値関数 (cakephp/twig-view 由来) ​

未実装:

  • default_currency - ❌ 代わりに {{ number.defaultCurrency() }} を使ってください

ビュー関数 (cakephp/twig-view 由来) ​

実装済み:

  • element
  • fetch

未実装 (cakephp/twig-view の ArraysExtension 由来):

  • in_array - ❌ Twig の in 演算子を使ってください: {% if 'foo' in array %}
  • explode - ❌ Twig の split フィルターを使ってください: {{ "a,b"|split(',') }}
  • array - ❌ ビューの責務ではありません。コントローラーでデータを用意してください
  • array_push - ❌ Twig の merge フィルターを使ってください: {{ array|merge(['new']) }}
  • array_prev - ❌ ビューの責務ではありません。テンプレートでは loop 変数を使ってください
  • array_next - ❌ ビューの責務ではありません。テンプレートでは loop 変数を使ってください
  • array_current - ❌ ビューの責務ではありません。テンプレートでは loop 変数を使ってください

未実装 (cakephp/twig-view の TimeExtension 由来):

  • time - ❌ Twig の組み込みの date 関数を使ってください
  • timezones - ❌ ビューの責務ではありません。コントローラーでデータを用意してください

未実装 (cakephp/twig-view の UtilsExtension 由来):

  • uuid - ❌ ビューの責務ではありません。コントローラーまたはモデルで生成してください

ルーティング関数 (pieceofcake2/twig-view 独自) ​

  • url
  • path

テスト ​

Twig 3.x の組み込みテスト ​

リファレンス: https://twig.symfony.com/doc/3.x/tests/index.html

カスタムテスト (cakephp/twig-view 由来) ​

実装済み:

  • multibyte

タグ ​

Twig 3.x の組み込みタグ ​

リファレンス: https://twig.symfony.com/doc/3.x/tags/index.html

カスタムタグ (cakephp/twig-view 由来) ​

実装済み:

  • {% layout 'name' %} - レイアウトを設定します

カスタムタグ (pieceofcake2/twig-view 独自) ​

実装済み:

  • {% trans %}...{% endtrans %} - 翻訳ブロック (CakePHP ベースで、Symfony 風)

レガシー (cakephp/legacy-twig-view:<2) ​

未実装:

  • {% element 'name' %} - ❌ 代わりに element() 関数を使ってください

CakePHP のヘルパー ​

CakePHP のヘルパーを Twig テンプレートで使うには、コントローラーでヘルパーを有効にする必要があります。

コントローラーで有効にします: public $helpers = ['Html', 'Form', 'Time', 'Number', 'Text', 'Session', 'Paginator'];

命名: ヘルパーのクラス名は先頭が小文字の camelBack 形式の変数に変換されます (例: HtmlHelper::link() → {{ html.link() }}、MyCustomHelper::method() → {{ myCustom.method() }})

FlashHelper ​

フラッシュメッセージを描画します。

  • flash.render(key = 'flash', options = {}) - フラッシュメッセージを描画します

FormHelper ​

フォームを作成し、入力要素を生成します。

  • form.create(model = null, options = {}) - 開始フォームタグを作成します
  • form.end(options = null, secureAttributes = {}) - フォームを閉じます
  • form.input(fieldName, options = {}) - 入力フィールドを生成します
  • form.inputs(fields = null, blacklist = null, options = {}) - 複数の入力要素を生成します
  • form.label(fieldName, text = null, options = {}) - label 要素を作成します
  • form.text(name, options = {}) - テキスト入力を作成します
  • form.password(fieldName, options = {}) - パスワード入力を作成します
  • form.hidden(fieldName, options = {}) - hidden 入力を作成します
  • form.textarea(fieldName, options = {}) - textarea を作成します
  • form.checkbox(fieldName, options = {}) - チェックボックスを作成します
  • form.radio(fieldName, options, attributes = {}) - ラジオボタンを作成します
  • form.select(fieldName, options, attributes = {}) - セレクトボックス (ドロップダウン) を作成します
  • form.file(fieldName, options = {}) - ファイルアップロードの入力を作成します
  • form.submit(caption = null, options = {}) - 送信ボタンを作成します
  • form.button(title, options = {}) - button 要素を作成します
  • form.postButton(title, url, options = {}) - POST ボタンを作成します
  • form.postLink(title, url = null, options = {}) - POST リンクを作成します
  • form.dateTime(fieldName, dateFormat = 'DMY', timeFormat = '12', attributes = {}) - 日付と時刻のセレクトを作成します
  • form.year(fieldName, minYear, maxYear, attributes) - 年のセレクトを作成します
  • form.month(fieldName, attributes = {}) - 月のセレクトを作成します
  • form.day(fieldName, attributes = {}) - 日のセレクトを作成します
  • form.hour(fieldName, format24 = false, attributes = {}) - 時のセレクトを作成します
  • form.minute(fieldName, attributes = {}) - 分のセレクトを作成します
  • form.meridian(fieldName, attributes = {}) - AM/PM のセレクトを作成します

HtmlHelper ​

HTML を生成し、マークアップを作成します。

  • html.charset(charset = null) - 文字エンコーディングの meta タグ
  • html.css(path, options = {}) - CSS スタイルシートへのリンク
  • html.meta(type, url = null, options = {}) - meta タグを生成します
  • html.docType(type = 'xhtml-strict') - doctype タグを返します
  • html.style(data, oneline = true) - 配列から CSS を構築します
  • html.image(path, options = {}) - 画像タグを作成します
  • html.link(title, url = null, options = {}) - HTML のリンクを生成します
  • html.media(path, options) - audio/video タグを作成します
  • html.tag(tag, text, options) - テキストを HTML タグで囲みます
  • html.div(class, text, options) - div 要素を作成します
  • html.para(class, text, options) - 段落要素を作成します
  • html.script(url, options) - JavaScript ファイルを読み込みます
  • html.scriptBlock(code, options = {}) - script ブロックを生成します
  • html.scriptStart(options = {}) - スクリプトのバッファリングを開始します
  • html.scriptEnd() - スクリプトのバッファリングを終了します
  • html.nestedList(list, options = {}, itemOptions = {}, tag = 'ul') - 入れ子のリストを構築します
  • html.tableHeaders(names, trOptions = null, thOptions = null) - テーブルのヘッダーを作成します
  • html.tableCells(data, oddTrOptions = null, evenTrOptions = null, useCount = false, continueOddEven = true) - テーブルのセルを作成します
  • html.url(url = null, full = false) - URL を生成します

NumberHelper ​

数値を整形し、変換します。

  • number.currency(number, currency = 'USD', options = {}) - 通貨として整形します
  • number.defaultCurrency(currency) - デフォルトの通貨を取得または設定します
  • number.addFormat(formatName, options) - カスタムの通貨フォーマットを追加します
  • number.precision(number, precision = 3) - 小数点以下の精度を指定して整形します
  • number.toPercentage(number, precision = 2, options = {}) - パーセンテージに変換します
  • number.fromReadableSize(size, default) - "1 KB" をバイト数に変換します
  • number.toReadableSize(dataSize) - "1 KB"、"1 MB" などの形式に整形します
  • number.format(number, options = false) - オプションを指定して数値を整形します
  • number.formatDelta(number, options = {}) - 符号付きの数値の差を整形します

PaginatorHelper ​

ページネーションをサポートします。

  • paginator.options(options = {}) - ページネーションのオプションを設定します
  • paginator.params(model = null) - ページネーションのパラメータを取得します
  • paginator.param(key, model = null) - ページネーションのパラメータを 1 つ取得します
  • paginator.url(options = {}, asArray = false, model = null) - ページネーションの URL を生成します
  • paginator.defaultModel() - デフォルトのモデルを取得または設定します
  • paginator.link(title, url = {}, options = {}) - ページネーションのリンクを生成します
  • paginator.prev(title = '<< Previous', options = {}, disabledTitle = null, disabledOptions = {}) - 前へのリンク
  • paginator.next(title = 'Next >>', options = {}, disabledTitle = null, disabledOptions = {}) - 次へのリンク
  • paginator.sort(key, title = null, options = {}) - ソートのリンクを生成します
  • paginator.sortDir(model = null, options = {}) - ソートの方向を取得します
  • paginator.sortKey(model = null, options = {}) - ソートのキーを取得します
  • paginator.numbers(options = {}) - ページ番号を生成します
  • paginator.first(first = '<< first', options = {}) - 最初のページへのリンク
  • paginator.last(last = 'last >>', options = {}) - 最後のページへのリンク
  • paginator.counter(options = {}) - ページカウンター (例: "1-20 of 100")
  • paginator.hasNext(model = null) - 次のページがあるかどうかをチェックします
  • paginator.hasPrev(model = null) - 前のページがあるかどうかをチェックします
  • paginator.hasPage(model = null, page = 1) - ページが存在するかどうかをチェックします

詳しい使い方は CakePHP のヘルパーの使い方 をご覧ください。

参照 ​

著作権とライセンスについては LICENSE を参照してください。Cake Software Foundation とは関係ありません。