コードをよりクリーンで保守しやすいものにするために、JS コード スニペットを PHP ファイルから独自のファイルに移動したいと考えています。たとえば、次の関数があります。
function load_script($fieldname)
{
return
'var help = function () {alert(' . '"EDITOR HELP:\n\n' .
'blah blah.\n\n' .
'more blah blah.\n\n' .
');}' . "\n" .
'var options = { handler: help, title: "Editor help" };' . "\n" .
'var converter = Markdown.getSanitizingConverter();' . "\n" .
'var editor = new Markdown.Editor(converter, "-'.$fieldname.'", options);' . "\n" .
'editor.run();' . "\n";
}
$fieldname
PHP 変数に注意してください。
アイデアは、JS 部分を .js ファイルに保存することです。次に、return ステートメントで出力するために、それをプレーン テキストとして読み込みます。つまり、次のようなものです。
function load_script($fieldname)
{
$output = file_get_contents("load_script.js");
return $output;
}
明らかに問題は、これが$fieldname
対応する値に置き換えられないことです。
これに関する私の現在の考えは、$output
文字列の置換を実行することです。
function load_script($fieldname)
{
$output = file_get_contents("load_script.js");
$output = str_replace("some_unique_identifier", $fieldname, $output);
return $output;
}
より良いアプローチはありますか?
編集:
この背後にある動機のいくつかを追加する必要があります。
まず、与えられた例は見苦しく、最も単純な JS スニペット以外は保守が困難です。間違いの余地がたくさんあります。
第二に、このように物事を混同すると、エディターは構文のチェックと強調表示の点であまり役に立ちません。
第 3 に、JS を独自のファイルで実行すると、サイト全体を処理する縮小スクリプトを実行しやすくなります (手動で縮小を維持する必要はありません)。