あり、そのための事前に定義されたオプションはありませんが、ここではあなたには、いくつかのMonkey Patchingを作ることができます。
ソースメソッドを変更することはできますが、ライブラリを新しいバージョンに更新すると変更が失われるため、これはお勧めできません。
代わりに、オリジナルのクラスを拡張する独自のクラスを作成し、オリジナルのメソッドsetValue
を追加しますが、パラメータを複製して小文字と大文字の両方を渡すことができます。
これは私のアプローチです。私はそれを試すことができませんでしたが、私はそれが動作すると思う(もちろん、あなたはクラスとメソッドのいくつかの良い名前を選択することができます)。
class TemplateProcessorCaseInsensitive extends TemplateProcessor
{
public function setValueCaseInsensitive($search, $replace, $limit = self::MAXIMUM_REPLACEMENTS_DEFAULT)
{
if (is_array($search)) {
foreach ($search as &$item) {
$item = strtolower($item);
}
$capitalizedSearch = $search;
foreach ($capitalizedSearch as &$capitalizedItem){
$capitalizedItem = ucfirst($capitalizedItem);
}
$search = array_merge($search, $capitalizedSearch);
}
else{
$search = array(strtolower($search), ucfirst(strtolower($search)));
}
if(is_array($replace)){
$replace = array_merge($replace, $replace);
}
else{
$replace = array($replace, $replace);
}
$this->setValue($search, $replace, $limit);
}
}
いくつかの例を見てみましょう。
例1
あなたはこれを行う場合は、次の
実際にあなたがバックグラウンドでこれをやっている
$templateProcessor = new TemplateProcessorCaseInsensitive ('Template.docx');
$templateProcessor->setValueCaseInsensitive('Name', 'John Doe');
:
$templateProcessor = new TemplateProcessor('Template.docx');
$templateProcessor->setValue(array('name', 'Name'), array('John Doe', 'John Doe'));
例2
あなたはこれを行う場合:
$templateProcessor = new TemplateProcessor('Template.docx');
$templateProcessor->setValue(array('city', 'street', 'City', 'Street'), array('Detroit', '12th Street', 'Detroit', '12th Street'));
:実際にあなたがバックグラウンドでこれをやっている
$templateProcessor = new TemplateProcessorCaseInsensitive ('Template.docx');
$templateProcessor->setValueCaseInsensitive(array('City', 'Street'), array('Detroit', '12th Street'));