將自訂方法的參數綁定到類別屬性上
<p>在類別內部,有沒有辦法將類別屬性綁定到方法參數,以便在點擊Ctrl 點擊時建立雙向連結? </p>
<pre class="brush:php;toolbar:false;">class Attachments extends Repository
{
public Documents $documents;
public function fromDocuments(callable $scope)
{
$this->scopeOnRepoProperty($scope, 'documents');
}
}
</pre>
<p>我的意思是,在這種情況下,scopeOnRepoProperty() 方法中的第二個參數 documents 應該引用屬性 $documents。 <br /><br />更廣泛的背景是:<br />問題是,程式碼的很大一部分非常類似,即大多數scopeXXX/fromXXX 方法都會執行類似的操作,即將屬性repository 會作為參數傳遞給方法。例如,在上面的範例中,會執行 $scope($this->documents);此外,如果 $this->documents 沒有初始化,將會建立一個新實例。 <br /><br />所以程式碼看起來是這樣的:</p><p><br /></p>
<pre class="brush:php;toolbar:false;">public function fromDocuments(callable $scope)
{
if (!isset($this->documents)) {
$this->documents = new Documents();
}
$scope($this->documents);
}
</pre>
<p>我想避免每次寫 if 語句、建立新物件和呼叫方法,所以我想到可以使用一個方法來實現,該方法將接受一個可呼叫物件、屬性名稱和類型反射類別名稱。 </p><p>程式碼運作良好,但不幸的是,由於這種方式,我失去了對這些屬性的綁定。在先前的版本中,是 $this->documents,因此連結是存在的,但現在不再存在。 </p><p>我想知道是否有任何方法可以實現這一點。有什麼想法嗎? </p><p><br /></p>