あまりにも一般的なコード行を検索する必要があるという問題に直面しています。
次のコードがあり、それを array_merge に変換する必要があるとします。
$this['data'][] = array(
'firstname' => $query->row['firstname'],
'lastname' => $query->row['lastname'],
'company' => $query->row['company'],
'company_id' => $query->row['company_id']
);
vqmod
<operation>
<search position="replace"><![CDATA[
$this['data'][] = array( ]]></search>
<add><![CDATA[
$this['data'][] = array_merge($data, array( ]]></add>
</operation>
<operation>
<search position="replace"><![CDATA[
); ]]></search>
<add><![CDATA[
)); ]]></add>
</operation>
これの問題は、あまりにも一般的なコードを検索しようとしていることです。
この同じ配列を変更する他の拡張機能を使用しているため、オフセットを使用してすべてを置き換えることができます。また、company_id が常に最後であることも信頼できません。
代わりに、2回検索する方法や、この概念に似た方法があるかどうかを考えていました。
- 検索:
$this['data'][] = array(
この行番号を見つけます。 - 次に、この行番号から次の検索を開始し、次に出現するものを見つけます。
);
これと同じ考え方を、返されるデータの前に何らかのロジックを追加したいメソッドに適用できます。
<operation>
<search position="before"><![CDATA[
private static function _cacheName ]]></search>
<search2><![CDATA[
return ]]></search2>
<add><![CDATA[
// custom code ]]></add>
</operation>