"スパゲッティコード"のスクリプトをTwigに変換する必要があります。 Twigのドキュメントを読んで基礎を学びました。しかし、私はすべてを適切に行うためのアドバイスが必要なので、後で再変換する必要はありません。変換されたときに、私のindex.phpは次のようになります、スパゲッティコードをTwigに変換
<?php
$footer_text="blah blah";
?>
<footer><?php echo $footer_text; ?></footer>
を私の知る限り理解:
ファイルのindex.php:
<?php
$page_message="do it";
function display_dropdown($max)
{
for ($i=0; $i<$max; $i++)
{
echo "<option value='$i'>Option $i</option>";
}
}
?>
<!DOCTYPE html>
<html>
<body>
<h1><?php echo $page_message; ?></h1>
<form method="post" action="<?php echo basename($_SERVER["SCRIPT_FILENAME"]); ?>">
<select name="whatever"><?php display_dropdown(10); ?></select>
<input type="submit" value="go">
<?php include("footer.php");?>
</body>
</html>
footer.phpに見えるのは、現在のスクリプトは次のように見えるとしましょう
<?php
$page_message="do it";
function display_dropdown($max)
{
for ($i=0; $i<$max; $i++)
{
echo "<option value='$i'>Option $i</option>";
}
}
$twig_params_array=array("page_message"=>$page_message, "footer_text"=>"blah blah");
require_once("../lib/Twig/Autoloader.php");
Twig_Autoloader::register();
$loader=new Twig_Loader_Filesystem("templates");
$twig=new Twig_Environment($loader);
echo $twig->render("index_template.html", $twig_params_array);
?>
その後、私はindex_template.html
とfooter_template.html
を作成する必要があります。小枝へ(または任意の)次のコードで:
index_template.html
<!DOCTYPE html>
<html>
<body>
<h1>{{ page_message }}</h1>
<form method="post" action="{{ _self }}>">
<select name="whatever"><?php display_dropdown(10); ?></select>
<input type="submit" value="go">
{{ include('footer_template.html') }}
</body>
</html>
footer_template.html
<footer>{{ footer_text }}</footer>
私は右理解していれば、それは "含める" 小枝テンプレートで機能することも可能です(とテンプレートでいくつか微調整しているので)、display_dropdown()
のような既存のPHP関数を書き換える必要はありません。
私に関係するものは、変数(Twig render
関数に渡されます)に配列されています。 Twigが動作する前に、何かが恋しいのか、それとも実際に変数($page_message
と$footer_text
など)を手動で定義する必要がありますか?
「スパゲッティコード」では変数をどこかに定義すれば、いつでもecho
機能を使用してアクセスすることができます。さて、PHPコードに存在するすべての変数を表示し、手動でTwigパラメータ配列に渡す必要があるようです。本当に?
あなたのご意見ありがとうございます。 Symfonyのフレームワークを今すぐ使う必要はありませんが、現在のスクリプトをTwigに変換すると、実際にはすでに違いがあります。 –