次の形式の一連の文字列があります。
{ method_name { $key1 = 'quoted value' , $key2 = __('literal value'); }}
// Missing method_name and final semi-colon
// Still valid
{{ $key1 = 'quoted value' , $key2 = __('literal value') }}
// Optional key values
{ method_name { $key1 = , $key2 = __('literal value'); }}
{ method_name { $key1, $key2 = __('literal value'); }}
// Any number of values
{ method_name { $key1 = 'quoted value' , $keyN = 3.14; }}
現在、一連のpreg_split
とを使用していtrim
ます。これはカスタム テンプレート エンジンの一部であり、method_name
どのメソッドを呼び出すかをパーサーに通知$key = value
し、配列としてメソッドに渡されます。これらの文字列は HTML テンプレートに埋め込まれ、その DOM 構造が繰り返される場合があります。各行/列が異なる値を持つテーブルと考えてください。キーは列の詳細 (名前、ソート可能など) であり、メソッドはセルの詳細を入力します。
私が抱えている問題は速度です。
Q1. 単一の式でこれを行うにはどうすればよいですか?
Q2. 速度が上がるでしょうか?
Q3. 結果をキャッシュする場合、やや複雑な正規表現よりも読みやすさが優先されますか?
Q4. パフォーマンスを向上させるために文字列を再構築する方法はありますか?
理想的には、文字列を 1 回だけスキャンし、それを PHP コードに変換し、eval
使用する必要があるたびに実行したいと考えています。