Thymeleaf(タイムリーフ)はPHPと組み合わせることで、より幅広いカスタマイズが可能となります。
本記事ではSPIRALが用意しているPHPの独自関数について解説いたします。
本記事ではSPIRALが用意しているPHPの独自関数について解説いたします。
Thymeleafの記法や動作についてはSPIRAL ver.2 サポートサイト Thymeleaf記法をご参照ください。
また、Thymeleaf関連記事をまとめた Thymeleaf特集 も是非ご覧ください。
関連記事はこちら
また、Thymeleaf関連記事をまとめた Thymeleaf特集 も是非ご覧ください。
- 【Thymeleafを使いこなそう】第1回 基本コード解説
- 【Thymeleafを使いこなそう】第2回 ログイン時ステータスでの分岐処理解説
- 【Thymeleafを使いこなそう】第3回 PHP スパイラルの独自関数の解説
- 【Thymeleafを使いこなそう】第4回 PHP APIを用いた実装解説
出力について
PHPの実行結果をThymeleafで判別するためには、PHPの値をThymeleafに渡す必要があります。
しかしその際、Thymeleafに記載ミスがあると500エラーが発生いたします。
500エラーの発生条件等については、500エラー発生ケース まとめをご確認ください。
Thymeleafにどのような値が渡っているか、PHPの処理が成功しているかに関しては、下記のコードで纏めて出力できますので、確認する際にはお試しください。
※確認やデバック用としてご使用ください。
しかしその際、Thymeleafに記載ミスがあると500エラーが発生いたします。
500エラーの発生条件等については、500エラー発生ケース まとめをご確認ください。
Thymeleafにどのような値が渡っているか、PHPの処理が成功しているかに関しては、下記のコードで纏めて出力できますので、確認する際にはお試しください。
※確認やデバック用としてご使用ください。
PHPからThymeleafへ受け渡している値の全出力コード
<!-- Thymeleafのコード -->
<span th:text="${cp.result}"></span>
setTHValue($key,$value),setTHValues($array)
PHP実行結果をThymeleafにセットします。
【setTHValue】には主に「固定の値」「変数」「配列」「連想配列」をセットすることが可能です。
【setTHValues】には「連想配列」のみセットすることが可能です。
【setTHValue】には主に「固定の値」「変数」「配列」「連想配列」をセットすることが可能です。
【setTHValues】には「連想配列」のみセットすることが可能です。
【setTHValue】「固定の値」・「変数」
▼【setTHValue】「固定の値」・「変数」をセット:PHPコード
<?php
// PHPの値宣言
$valueA = "変数のテキスト";
// PHPの値セット
$SPIRAL->setTHValue("value","固定のテキスト");
$SPIRAL->setTHValue("valueA",$valueA);
▼【setTHValue】「固定の値」・「変数」を出力:Thymeleafのコード
<p th:text="${cp.result.value['value']}"></p>
<p th:text="${cp.result.value['valueA']}"></p>
▼画面出力
<p>固定のテキスト</p> <p>変数のテキスト</p>
【setTHValue】「配列」「連想配列」
▼【setTHValue】「配列」「連想配列」をセット:PHPコード
<?php
// PHPの値宣言
$arrayA = ['red', 'blue', 'yellow'];
$arrayB = array(
"value1" => "head",
"value2" => "body",
"value3" => "foot",
);
$arrayC = array("items" =>array(
array(
"value1" => "head",
"value2" => "body",
"value3" => "foot",
),
array(
"value1" => "ヘッド",
"value2" => "ボディ",
"value3" => "フット",
)
));
// PHPの値セット
$SPIRAL->setTHValue("arrayA",$arrayA);
$SPIRAL->setTHValue("arrayB",$arrayB);
$SPIRAL->setTHValue("arrayC",$arrayC);
▼【setTHValue】「配列」「連想配列」を出力:Thymeleafのコード
<!-- arrayA -->
<th:block th:each="val,status:${cp.result.value[arrayA]}">
<p th:text="${val}"></p>
</th:block>
<!-- arrayB -->
<th:block th:each="val,status:${cp.result.value[arrayB]}">
<p th:text="${val.key}"></p>
<p th:text="${val.value}"></p>
</th:block>
<!-- arrayC -->
<th:block th:each="val,status:${cp.result.value[arrayC]['items']}">
<p th:text="${val['value1']}"></p>
<p th:text="${val['value2']}"></p>
<p th:text="${val['value3']}"></p>
</th:block>
▼画面出力
<!-- arrayA -->
<p>red</p>
<p>blue</p>
<p>yellow</p>
<!-- arrayB -->
<p>value1</p>
<p>head</p>
<p>value2</p>
<p>body</p>
<p>value3</p>
<p>foot</p>
<!-- arrayC -->
<p>head</p>
<p>body</p>
<p>foot</p>
<p>ヘッド</p>
<p>ボディ</p>
<p>フット</p>
【setTHValues】「連想配列」
▼【setTHValues】「連想配列」をセット:PHPコード
<?php
// PHPの値宣言
$arrayB = array(
"value1" => "head",
"value2" => "body",
"value3" => "foot",
);
$arrayC = array("items" =>array(
array(
"value1" => "head",
"value2" => "body",
"value3" => "foot",
),
array(
"value1" => "ヘッド",
"value2" => "ボディ",
"value3" => "フット",
)
));
// PHPの値セット
$SPIRAL->setTHValues($arrayB);
$SPIRAL->setTHValues($arrayC);
▼【setTHValues】「連想配列」を出力:Thymeleafのコード
<!-- arrayB -->
<p th:text="${cp.result.value['value1']}"></p>
<p th:text="${cp.result.value['value2']}"></p>
<p th:text="${cp.result.value['value3']}"></p>
<!-- arrayC -->
<th:block th:each="val,status:${cp.result.value['items']}">
<p th:text="${val['value1']}"></p>
<p th:text="${val['value2']}"></p>
<p th:text="${val['value3']}"></p>
</th:block>
▼画面出力
<!-- arrayB -->
<p>head</p>
<p>body</p>
<p>foot</p>
<!-- arrayC -->
<p>head</p>
<p>body</p>
<p>foot</p>
<p>ヘッド</p>
<p>ボディ</p>
<p>フット</p>
getEnvValue($key)
PHP環境変数を呼び出します。
PHP環境変数では、APIキーやAPIエンドポイントURLなど、サイト内で何度も使用する値を登録しておき、
独自クラス「$SPIRAL」を使用して、PHPプログラム内に呼び出すことができます。
テスト環境と本番環境で、値を切り替えることが可能です。
PHP環境変数では、APIキーやAPIエンドポイントURLなど、サイト内で何度も使用する値を登録しておき、
独自クラス「$SPIRAL」を使用して、PHPプログラム内に呼び出すことができます。
テスト環境と本番環境で、値を切り替えることが可能です。
getEnvValue($key)
▼PHPコード<?php
//APIURL、APIキーを取得
$apiurl = $SPIRAL->getEnvValue("apiurl");
$apikey = $SPIRAL->getEnvValue("apikey");
getAuthRecordByFieldId($fieldId)
認証エリア内のPHPにて、認証レコード値を取得します。
$fieldIdには、値を取得するフィールドのID(1、2など)を指定します。
▼PHPコード
$fieldIdには、値を取得するフィールドのID(1、2など)を指定します。
▼PHPコード
<?php
//認証レコード値を取得
$SPIRAL->getAuthRecordByFieldId("1");
getParam($paramName),getParams($paramName)
getParam($paramName)では、別のページからGETやPOSTで送信されてきた値やクエリパラメータの値を一つ取得します。
同じパラメータ名で送信されてきた場合、1つのみ取得します。
GETとPOSTで同じパラメータ名で送信されてきた場合、POSTで送信されたきた値を優先して取得します。 getParams($paramName)では、別のページから送信されてきた配列やクエリパラメータの配列を取得します。
同じパラメータ名で送信されてきた場合、1つのみ取得します。
GETとPOSTで同じパラメータ名で送信されてきた場合、POSTで送信されたきた値を優先して取得します。 getParams($paramName)では、別のページから送信されてきた配列やクエリパラメータの配列を取得します。
getParam($paramName)
▼【getParam】値をセット:PHPコード
<?php
// PHPの値宣言
$postValue = $SPIRAL->getParam("postValue");
$getValue = $SPIRAL->getParam("getValue");
// PHPの値セット
$SPIRAL->setTHValue("post",$postValue);
$SPIRAL->setTHValue("get",$getValue);
▼【getParam】POST,GETで値を送信するフォーム+出力:Thymeleafコード
<!-- postで値を送信 -->
<form action="" method="post">
<input type="text" name="postValue">
<button type="submit">postSubmit</button>
</form>
<!-- getで値を送信 -->
<form action="" method="get">
<input type="text" name="getValue">
<button type="submit">getSubmit</button>
</form>
<!-- 出力 -->
<p th:text="${cp.result.value['post']}"></p>
<p th:text="${cp.result.value['get']}"></p>
getParam($paramName)
▼【getParams】値をセット:PHPコード
<?php
// PHPの値宣言
$postValue = $SPIRAL->getParams("postValue[]");
$getValue = $SPIRAL->getParams("getValue[]");
// PHPの値セット
$SPIRAL->setTHValue("post",$postValue);
$SPIRAL->setTHValue("get",$getValue);
▼【getParams】POST,GETで値を送信するフォーム+出力:Thymeleafコード
<!-- postで値を送信 -->
<form action="" method="post">
<input type="text" name="postValue[]">
<input type="text" name="postValue[]">
<button type="submit">postSubmit</button>
</form>
<!-- getで値を送信 -->
<form action="" method="get">
<input type="text" name="getValue[]">
<input type="text" name="getValue[]">
<button type="submit">getSubmit</button>
</form>
<!-- 出力 -->
<th:block th:each="val,status:${cp.result.value[post]}">
<p th:text="${val}"></p>
</th:block>
<th:block th:each="val,status:${cp.result.value[get]}">
<p th:text="${val}"></p>
</th:block>
以下の独自クラス・関数はgetParam・getParamsと同様のコードで使用可能です。
異なる点としては、getParam・getParamsではGET・POSTの値をどちらも取得可能ですが、下記では、GET/POSTの値を取得するものとなります。
Query:ページURLのクエリパラメータ(GETの値)
Post:POSTで送信されてきた値
■getQueryParam($paramName)
■getQueryParams($paramName)
■getPostParam($paramName)
■getPostParams($paramName)
異なる点としては、getParam・getParamsではGET・POSTの値をどちらも取得可能ですが、下記では、GET/POSTの値を取得するものとなります。
Query:ページURLのクエリパラメータ(GETの値)
Post:POSTで送信されてきた値
■getQueryParam($paramName)
■getQueryParams($paramName)
■getPostParam($paramName)
■getPostParams($paramName)
getRecordValue()
登録フォームまたは更新フォームの完了ステップにて、登録または更新した値を取得します。
ステップの取得については、フォームブロックのステップ取得用PHPクラスをご確認ください。
▼登録フォームの完了ステップにて値を取得:PHPコード
関連記事はこちら
ステップの取得については、フォームブロックのステップ取得用PHPクラスをご確認ください。
▼登録フォームの完了ステップにて値を取得:PHPコード
<?php
$registForm = $SPIRAL->getRegistrationForm("登録フォーム識別名");
//完了ステップでのみ実行する
if ($registForm->isCompletedStep()) {
$record = $SPIRAL->getRecordValue();
$recordId = $record['item']['_id'];
$SPIRAL->setTHValue("newRecordId", $recordId);
}
- 【Thymeleafを使いこなそう】第1回 基本コード解説
- 【Thymeleafを使いこなそう】第2回 ログイン時ステータスでの分岐処理解説
- 【Thymeleafを使いこなそう】第3回 PHP スパイラルの独自関数の解説
- 【Thymeleafを使いこなそう】第4回 PHP APIを用いた実装解説