Maison > cadre php > YII > qu'est-ce que le filtre yii

qu'est-ce que le filtre yii

(*-*)浩
Libérer: 2019-12-27 14:49:58
original
2448 Les gens l'ont consulté

qu'est-ce que le filtre yii

Filtre

Un filtre est un objet qui est exécuté avant ou après l'exécution d'une action du contrôleur. Par exemple, un filtre de contrôle d'accès peut contrôler si un utilisateur final spécifique est autorisé à effectuer une action avant que l'action ne soit exécutée, et un filtre de compression de contenu peut compresser le contenu de la réponse après l'exécution de l'action avant de l'envoyer à l'utilisateur final. (Apprentissage recommandé : framework YII )

Le filtre peut contenir un pré-filtrage (logique de filtrage avant action) ou un post-filtrage (logique de filtrage après action), qui peut également en inclure deux en même temps temps.

Utiliser des filtres

Les filtres sont essentiellement un type spécial de comportement, donc utiliser des filtres équivaut à utiliser un comportement. Les filtres peuvent être déclarés dans la classe contrôleur en remplaçant sa méthode behaviors(), comme indiqué ci-dessous :

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');
            },
        ],
    ];
}
Copier après la connexion

Les filtres de la classe contrôleur sont appliqués à toutes les actions de la classe par défaut. Vous pouvez configurer le seul attribut. Spécifiez explicitement les actions auxquelles le contrôleur s'applique. Dans l'exemple ci-dessus, le filtre HttpCache s'applique uniquement aux actions d'indexation et d'affichage. Vous pouvez également configurer l'attribut except pour empêcher certaines actions d'exécuter des filtres.

En plus des contrôleurs, des filtres peuvent être déclarés dans des modules ou des corps d'application. Après déclaration, le filtre sera appliqué à toutes les actions du contrôleur appartenant au module ou au corps de l'application, à moins que les attributs uniquement et sauf du filtre ne soient configurés comme ci-dessus.

Remarque : lorsque vous déclarez des filtres dans le corps du module ou de l'application, utilisez des routes au lieu des ID d'action dans les attributs only et except, car l'utilisation uniquement de l'ID d'action dans le corps du module ou de l'application ne peut pas spécifier de manière unique une action spécifique.

Lorsqu'une action possède plusieurs filtres, ceux-ci sont exécutés séquentiellement selon les règles suivantes :

Pré-filtrage

Dans l'ordre, exécutez les filtres répertoriés dans behaviors() dans le corps de l'application.

Exécutez les filtres répertoriés dans behaviors() dans le module dans l'ordre.

Exécutez les filtres répertoriés dans behaviors() dans le contrôleur dans l'ordre.

Si un filtre met fin à l'exécution de l'action, les filtres suivants (y compris le pré-filtrage et le post-filtrage) ne seront plus exécutés.

Exécutez l'action après avoir réussi le pré-filtrage.

Post-filtrage

Exécutez les filtres répertoriés dans behaviors() dans le contrôleur dans l'ordre inverse.

Exécutez les filtres répertoriés dans behaviors() dans le module dans l'ordre inverse.

Exécutez les filtres répertoriés dans behaviors() dans le corps de l'application dans l'ordre inverse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
yii
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal