2012-11-20 5 views
1

사용자 지정 태그에는 특성 범위가 있습니다. 시원한.특성 범위 vs 특성 구조

또한 개발자가 모든 것을 특성 구조에 집어 넣은 다른 응용 프로그램 (및 아마도 coldbox?)을 보았습니다. login.cfm 예를 들면

<cfparam name="attributes.username" default="some value">

는 게다가, 내가 인정한다 가독성을 향상 않습니다 attributes.foo를 지정하고 왜 전체 범위의 이름을 다시 할 필요가 이것에 지점이 있습니까? 이 개인적인 취향인가요? 아니면 속성 범위에 심오한 것을 놓치고 있습니까?

감사합니다.

답변

5

아무 것도 아닙니다. 폼과 URL 범위를 하나의 "이벤트"객체 또는 무언가 (예 : "속성"예제)로 결합하는 것과 같은 많은 프레임 워크 (및 개별 개발자)가 실제로 많은 것을 구매하지는 않습니다.

즉, 기존 범위 이후에 새 개체의 이름을 지정하는 것은 잘못된 것이며, 반대하는 것이 좋습니다. 속성 객체가 아닌 속성 범위를 벗어나는 것을 원하면 어떻게됩니까?

당신은 explicitness를 위해 variables.attributes.foo를 통해 언제나 객체를 참조 할 수 있지만 고통스럽고 추악합니다. 물론 속성 범위에 액세스하는 것을 멈추게하는 요소는 없습니다 (범위 우선 순위는 variables.attributes보다 먼저 속성을 검사합니다).하지만 코드를 읽은 후에는 혼란 스러울 수 있습니다. 그것은 본질적으로 하나를 해결하는 대신 문제를 만들었습니다.

+0

내 대답은 세부 사항 –

0

Fusebox에서 아이디어는 개별 파일을 프레임 워크의 일부로 사용하거나 cfmodule의 일부로 사용할 수 있다는 아이디어였습니다. corefiles의 내부/application.cfc은 다음과 같습니다

... 
<cfparam name="variables.attributes" default="#structNew()#" /> 
<cfif isDefined("URL")> 
    <cfset structAppend(attributes,URL,true) /> 
</cfif> 
<cfif isDefined("form")> 
    <cfset structAppend(attributes,form,true) /> 
</cfif> 
... 

자세한

에 대한 GitHub를 참조 아래
+0

제임스, 난 당신이 언급하는지 확인할 수 없습니다이있다? cfmodule은 그 링크에서 전혀 언급되지 않았습니까? –

+1

일반적으로이 상황에서 특히 관련 텍스트를 응답에 직접 인용하는 것이 유용합니다 (인용 부호를 마크 업하려면'> '를 사용하십시오). 물론 여기에는 속성을위한 URL이 포함되어 있습니다. –