檢測動態declarated領域上的對象與codesniffer一個重構之後,我們有這樣的事情在我們的一類:如何在PHP
class FooBar
{
// $foo was $bla before
private $foo;
public function setBlubbOnArrayOnlyOnce($value)
{
// $this->bla was forgotten during refactoring. Must be $this->foo
if(!isset($this->bla['blubb'])) {
$this->foo['blubb'] = $value;
}
}
}
所以最終$這個 - >富[「blubb」 ]總是被設置,不僅一次。 這是因爲PHP的神奇方法。我們不希望它可以動態訪問字段,所以我想我只是添加了一個codesniffer規則。但我沒有找到任何問題,並問我爲什麼。
PHPStorm顯示一個聲明動態通知的字段,但我希望這會在我們的部署週期中自動失敗,並顯示codesniffer(或類似內容)。
有沒有人有這個想法?有一個很好的規則嗎?我應該寫我自己的和如何?或者禁用它會是不好的做法嗎?
聲明:我們使用測試,但有時您會錯過一些事情......首先應該避免這種情況。另外,請不要想出覆蓋魔術方法。我不想在每個班級都有特質/抽象。
你可以尋找未定義的變量,因爲$ this-> bla不會被聲明嗎?您可能必須在PHPCodeSniffer中擴展代碼。 –
我在嘗試,但我希望有一個明顯而簡單的方法來做到這一點 – Kasihasi
你問過Squizlabs(http://www.squizlabs.com/)或他們的GitHub(https://github.com/squizlabs)嗎?/PHP_CodeSniffer),格雷格舍伍德對過去的問題做出了相當的迴應。 –