2010-02-03 2 views
11

저는 현재 yii 프레임 워크를 배우고 있으며 해당 문서를 읽었습니다.yii 구성 요소 : 이벤트 및 동작?

하지만 여전히 구성 요소를 이해하지 못합니다. 이게 뭐야? 그들은 구성 요소 이벤트 및 동작에 대해 이야기합니다.

누군가 나를 위해이 용어를 설명하고 구성 요소, 이벤트 및 동작이 될 수있는 실제 응용 사례를 제공 할 수 있습니까?

도움이 될 것입니다.

답변

5

자체로는 CComponent가별로 도움이되지 않습니다. 그것은 Qt의 QObject와 매우 흡사합니다. CComponent는 이벤트를 발생시킬 수 있으며 attachEventHandler()를 통해 이벤트에 대한 대리자를 가질 수 있습니다.

는 행동에 관한 매뉴얼은 말한다 : 그들이 구성 요소에 속하는 것처럼 행동

방법은 이 호출 할 수 있습니다. 여러 구성 요소가 동일한 구성 요소에 연결된 일 수 있습니다.

구성 요소에 비헤이비어를 추가하려면 attach attachBehavior; 구성 요소에서 동작을 분리하려면 detachBehavior를 호출하십시오.

동작은 각각 또는 enableBehavior 또는 disableBehavior를 호출하여 일시적으로 활성화하거나 비활성화 할 수 있습니다. 을 사용할 수 없으면 구성 요소를 통해 비헤이비어 메서드를 호출 할 수 없습니다.

행동의 속성 (게터 및/또는 족 통해 정의의 공개 멤버 변수 또는 특성 중 어느 하나)가 부착되어 요소를 통해 액세스 될 수 있고, 버전 1.1.0부터 출발. 당신에게 (사용 또는 행동을 비활성화하여)를 signals and slots 메커니즘, 또는 strategy pattern을 시뮬레이션 할 수있는 가능성을 제공

.

Yii의 대부분의 클래스에는 CComponent가 기본 클래스로 있습니다.

사용자는 자신의 구성 요소를 만들 때 (위에서 보호/구성 요소 /) 메커니즘을 통해 제공되는 이점을 알 수 있습니다. http://www.yiiframework.com/doc/guide/basics.component

4

, 응용 프로그램이 다른 개체의 상호 작용을 통해 작동

현재 구성 요소를 구현하기위한 좋은 출발점을 찾을 수 있습니다 이러한 객체는 응용 프로그램의 "구성 요소"또는 "구성 요소"로 간단하게 간주 될 수 있습니다. 구성 요소는 단순히 Yii 응용 프로그램에서 특정 작업을 수행하거나 촉진하기 위해 작성한 개체입니다.[Yii 응용 프로그램의 일반적인 워크 플로]를보고있는 경우 [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc][1]

보기 및 레이아웃 (스크립트로 간주 됨) 및 색인에서.PHP, 다른 사람들과 상호 작용하는 모든 것은 하나의 구성 요소입니다. 응용 프로그램이 실행될 때 모두 다른 작업을 수행합니다.

Yii의 거의 모든 것이 구성 요소 (또는 CComponent 클래스에서 파생 됨)입니다.

보다 구체적으로,

CComponent 정의, 속성 및 이벤트를 사용하는 프로토콜을 구현하는 "

이벤트 :. 이벤트는 행동의 순서 (하나 이상)을 수행 할 수 특정 이벤트가 구성 요소 내에서 발생하는 경우 이벤트를 정의하고 해당 이벤트에 많은 기능 (동작)을 첨부하십시오 이제 구성 요소 내에서 이벤트가 발생할 때마다 해당 이벤트에 첨부 된 모든 기능이 실행됩니다. , 이들은 다소 있습니다. Wordpress의 갈고리 개념과 비슷합니다.

구성 요소에서 이벤트의 특정 응용 프로그램

은 당신이 기본 클래스를 확장하지 않고 일반 응용 프로그램의 흐름을 방해 할 때 유용합니다

로 YII에 의해 정의된다.

동작 : 행동은 단순히 다른 곳으로 다중 상속의 여러 기능-같은 이름의 문제와 함께하는 동안 PHP5에서 지원하지 않는 다중 상속, 당신을 제공 YII의 방법입니다. 클래스 A와 B의 속성과 메서드를 상속하려면 클래스 A를 확장 한 다음 클래스 B를 해당 동작으로 연결하면 클래스 B의 모든 메서드를 사용할 수 있습니다. 이제 A와 B 모두 'usefulfunction()'이라는 함수가 포함 된 경우이 함수를 호출하면 클래스 A에서만 '유용한 함수'가 실행됩니다. 클래스 A와 B가 모두 클래스에 동작으로 추가되면 '유용한 함수'호출은 먼저 첨부 된 동작에서 메서드를 실행하게됩니다.

P. (나는 전문가가 아니므로 어디서나 틀리면 정정 해주십시오.)