사용자 정의 메소드 매개변수를 클래스 속성에 바인딩
<p>클래스 내에서 Ctrl+클릭 시 양방향 링크가 설정되도록 클래스 속성을 메소드 매개변수에 바인딩하는 방법이 있습니까? </p>
<pre class="brush:php;toolbar:false;">클래스 첨부 파일이 저장소를 확장합니다.
{
공개 문서 $documents;
공개 함수 fromDocuments(호출 가능 $scope)
{
$this->scopeOnRepoProperty($scope, '문서');
}
}
</pre>
<p>제 말은 이 경우에scopeOnRepoProperty() 메소드의 두 번째 매개변수 문서가 $documents 속성을 참조해야 한다는 것입니다. <br /><br />더 넓은 맥락은 다음과 같습니다. <br />문제는 코드의 상당 부분이 매우 유사하다는 것입니다. 즉, 대부분의scopeXXX/fromXXX 메소드는 유사한 작업을 수행합니다. 즉, 속성 저장소 메소드에 매개변수로 전달됩니다. 예를 들어 위의 예에서는 $scope($this->documents)가 실행되고 $this->documents가 초기화되지 않으면 새 인스턴스가 생성됩니다. <br /><br />따라서 코드는 다음과 같습니다:</p><p><br /></p>
<pre class="brush:php;toolbar:false;">공개 함수 fromDocuments(호출 가능 $scope)
{
if (!isset($this->documents)) {
$this->documents = 새 문서();
}
$scope($this->문서);
}
</pre>
<p>if 문을 작성하고, 새 객체를 생성하고, 매번 메소드를 호출하는 것을 피하고 싶었기 때문에 호출 가능한 객체, 속성 이름 및 유형 리플렉션을 허용하는 메소드를 사용하면 이를 수행할 수 있다고 생각했습니다. 수업 이름. </p><p>코드는 정상적으로 실행되지만 불행하게도 이 접근 방식으로 인해 이러한 속성에 대한 바인딩이 손실됩니다. 이전 버전에서는 $this->documents라서 링크가 있었으나 이제는 그렇지 않습니다.
이를 달성할 수 있는 방법이 있는지 알고 싶습니다. 어떤 아이디어가 있나요?