2013-03-25 1 views
1

최근 Session 변수에 사용자 정보를 저장하기 위해 cfc 구성 요소를 사용하기 시작했습니다. Session.UserId, Session.Firstname, Session.Lastname과 같이 Session에 개별 변수로 저장했습니다. 이 새로운 구성 요소는 필요한 모든 값 (예 : Session.User.getUserId(), Session.User.GetName() 등)에 대한 메소드를 가진 구성 요소로 구성 요소를 멋지게 꾸며줍니다.구성 요소 구조가 아닌 Cfdump 구성 요소 메소드 값

하지만 디버깅을 위해 세션 변수의 cfdump를 수행 할 때 객체 구조의 메타 데이터가 표시됩니다. 구성 요소의 get 메소드에서 반환 된 값을보고 싶습니다. cfdump를 사용하여 객체 메타 데이터로 함수 값을 출력하는 방법은 무엇입니까?

답변

3

cfdump를 사용하여 개체 메타 데이터로 함수 값을 출력하는 방법은 무엇입니까?

예, 접근자를 사용하십시오.

<cfcomponent accessors="true"> 
    <cfproperty name="userID"> 
    <cfproperty name="firstName"> 
    <cfproperty name="lastName"> 
</cfcomponent> 

이 개체로 시도하면 속성 값이 표시됩니다. 명시 적으로 개인 (및 cfdump에 따라서 보이지 않는)로 간주됩니다 VARIABLES 범위를 사용하는 동안 어도비는 이에 대한 지원을 계속하지만, ColdFusion에서 8 년 THIS 범위 내에서 어떤 변수가 자동으로 공공 (그리고 cfdump에 따라서 볼)로 간주되는 경우

+1

이것은 내가 찾고있는 것입니다. 고맙습니다. –

4

<cfdump>은 마법이 아닙니다. 출력하는 모든 것은 결과 값입니다. CFC 인스턴스가 이러한 값을 반영하는 공개 속성을 공개하지 않으므로 <cfdump>은 자신이 무엇인지 알 수있는 방법이 없습니다.

하나의 히트에 이전 세션 범위를 반영 모든 민간 속성을 추출해야하는 경우, 당신은 그렇게 할 수있는 방법을 만들 필요가 다음 <cfdump> 그. EG :

public struct function getVariables(){ 
    return variables; 
} 

당신은 예를 들어, 당신이 더 원하는 값을 추출하는 경우 (variables.sessionStuff.userId, variables.sessionStuff.name 등) variables.sessionStuff으로는, 다음 variables.sessionStuff을 반환하는 방법 getSessionStuff() 물품.

0

확실하지. 이 방법을 사용하면 구성 요소 참조를 구성 요소에 유지할 때 스택 오버 플로우가 발생하지 않도록 할 수 있습니다 (cfdump는 반복적으로 무한 루프로 끝나는 문제 해결에 사용됨). 그런데 ColdFusion 9 이상에서는이 문제가 수정되었을 가능성이 큽니다.