> PHP 프레임워크 > YII > yii 필터가 뭐야?

yii 필터가 뭐야?

(*-*)浩
풀어 주다: 2019-12-27 14:49:58
원래의
2407명이 탐색했습니다.

yii 필터가 뭐야?

Filter

필터는 컨트롤러 작업이 실행되기 전이나 후에 실행됩니다 개체 . 예를 들어 액세스 제어 필터는 작업이 실행되기 전에 특정 최종 사용자에게 작업을 수행할 수 있는 권한이 있는지 여부를 제어할 수 있고, 콘텐츠 압축 필터는 작업이 실행된 후 응답 콘텐츠를 최종 사용자에게 보내기 전에 압축할 수 있습니다. (권장 학습: yiiframework)

필터에는 사전 필터링(작업 전 필터링 논리) 또는 사후 필터링(작업 후 필터링 논리)이 포함될 수 있습니다. 동시에 두 가지를 모두 포함합니다.

필터 사용

필터는 본질적으로 특별한 유형의 동작이므로 필터를 사용하는 것은 동작을 사용하는 것과 동일합니다. 아래와 같이 컨트롤러 클래스의 동작() 메서드를 재정의하여 필터를 선언할 수 있습니다.

public function behaviors()
{
    return [
        [
            'class' => 'yii\filters\HttpCache',
            'only' => ['index', 'view'],
            'lastModified' => function ($action, $params) {
                $q = new \yii\db\Query();
                return $q->from('user')->max('updated_at');
            },
        ],
    ];
}
로그인 후 복사

컨트롤러 클래스의 필터는 기본적으로 클래스의 모든 작업에 적용됩니다. 속성은 컨트롤러가 적용되는 작업을 명시적으로 지정합니다. 위의 예에서 HttpCache 필터는 인덱스 및 보기 작업에만 적용됩니다. 일부 작업이 필터를 실행하지 못하도록 제외 속성을 구성할 수도 있습니다.

컨트롤러 외에도 모듈이나 애플리케이션 본문에서 필터를 선언할 수 있습니다. 선언 후에는 필터의 only 및 Except 속성이 위와 같이 구성되지 않은 한 모듈 또는 애플리케이션 본문에 속하는 모든 컨트롤러 작업에 필터가 적용됩니다.

참고: 모듈이나 애플리케이션 본문에서 필터를 선언할 때 only 및 Except 속성에 작업 ID 대신 경로를 사용하세요. 모듈이나 애플리케이션 본문에서 작업 ID를 사용하는 것만으로는 특정 항목을 고유하게 지정할 수 없기 때문입니다. 행동. .

작업에 여러 개의 필터가 있는 경우 다음 규칙에 따라 순차적으로 실행됩니다.

사전 필터링#🎜 🎜#

애플리케이션 본문의 Behaviors()에 나열된 필터를 순서대로 실행합니다.

모듈의behaviors()에 나열된 필터를 순서대로 실행합니다.

컨트롤러에서 Behaviors()에 나열된 필터를 순서대로 실행합니다.

필터가 작업 실행을 종료하면 후속 필터(사전 필터링 및 사후 필터링 포함)가 더 이상 실행되지 않습니다.

사전 필터링을 성공적으로 통과한 후 작업을 실행합니다.

사후 필터링

컨트롤러의 동작()에 나열된 필터를 역순으로 실행합니다.

모듈의behaviors()에 나열된 필터를 역순으로 실행합니다.

애플리케이션 본문의 Behaviors()에 나열된 필터를 역순으로 실행합니다.

위 내용은 yii 필터가 뭐야?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
yii
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿