在PHP_Beautify中抑制下一个标记
发布时间:2020-12-13 22:46:57 所属栏目:PHP教程 来源:网络整理
导读:我正在使用PEAR PHP_Beautifier来尝试格式化大量遗留代码,并实现数组元素的特定格式. 我写了一个自定义过滤器: class PHP_Beautifier_Filter_ArrayIndent extends PHP_Beautifier_Filter{ public function t_array($sTag) { if (($this-oBeaut-getNextToken
我正在使用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”之后修改/抑制下一个标记,或者跳过它以便我可以处理我的过滤器中的左括号? 解决方法
这行不是$this-> oBeaut-> addNewlineIndent();是什么导致新线,不应该删除或更改为不同的方法?
建议: <?php if (($this->oBeaut->getNextTokenContent(1) === '(') && ($this->oBeaut->getNextTokenContent(2) !== ')')) { $this->oBeaut->add($sTag); } 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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |