私は PEAR PHP_Beautifier を使用して、大量のレガシー コードをフォーマットして、配列要素の特定のフォーマットを実現しようとしています。
カスタムフィルターを作成しました:
class PHP_Beautifier_Filter_ArrayIndent extends PHP_Beautifier_Filter
{
public function t_array($sTag)
{
if (($this->oBeaut->getNextTokenContent(1) === '(') &&
($this->oBeaut->getNextTokenContent(2) !== ')')) {
// Don't use for Array type hinting
// Don't use for Empty array definition
$this->oBeaut->add($sTag);
$this->oBeaut->addNewlineIndent();
} elseif ($this->oBeaut->getNextTokenContent(2) !== ')') {
// Ensure a space after type hinted array before argument name
$this->oBeaut->add($sTag . ' ');
} else {
// Empty array definition
$this->oBeaut->add($sTag);
}
}
}
次の形式を取得しようとしています(「配列」と同じ行に開き中括弧を使用):
public function doSomething(array $params = array()) {
$dummy1 = array();
$dummy2 = array (
'Hello' => 'World',
'Goodnight' => 'Vienna'
);
}
しかし、私は得ています:
public function doSomething(array $params = array()) {
$dummy1 = array();
$dummy2 = array
(
'Hello' => 'World',
'Goodnight' => 'Vienna'
);
}
「t_array」の後の次のトークンを変更/抑制したり、フィルター内で左中括弧を処理できるようにスキップしたりする方法はありますか?