Maison >cadre php >PensezPHP >Parlons du contrôleur vide de ThinkPHP6

Parlons du contrôleur vide de ThinkPHP6

王雪芹
王雪芹original
2020-06-11 18:35:203486parcourir

Le contrôleur vide n'occupe qu'un très petit espace dans le manuel ThinkPHP6. Alors, qu'est-ce qu'un contrôleur vide ? Même ce mot peut ne pas être entendu ou utilisé par de nombreux programmeurs. Alors cette fois, permettez-moi d'utiliser un exemple pratique pour parler du contrôleur vide. contrôleur vide de ThinkPHP6.

Nous recherchons le mot-clé "contrôleur vide" dans le manuel officiel de ThinkPHP6, et nous pouvons trouver le contenu du chapitre du contrôleur vide. Jetons d'abord un coup d'œil à la définition officielle d'un contrôleur vide :

Le concept de contrôleur vide signifie que lorsque le système ne peut pas trouver le nom du contrôleur spécifié, le système essaiera de localiser la classe de contrôleur vide (Erreur) de l'application actuelle, en utilisant ce mécanisme que nous pouvons utiliser pour personnaliser les pages d'erreur et optimiser les URL.

C'est-à-dire que nous pouvons utiliser un contrôleur vide pour personnaliser notre page d'erreur.

Le manuel utilise une seule application comme exemple, mais en réalité, la plupart de nos projets ont plusieurs applications, nous utilisons donc ensuite plusieurs applications comme exemple.

Supposons que le nom de domaine de notre projet soit www.xiangmu.com Nous avons deux applications, index et démo. Chaque application a son propre contrôleur d'index et sa propre méthode d'index.

1. Je ne trouve pas de moyen.

Si nous entrons www.xiangmu.com/index/index/a dans le navigateur, cette adresse accédera à la méthode a dans le contrôleur d'index sous l'application d'index, mais notre méthode a ne le fait pas 'n'existe pas. Que se passe-t-il si cette demande invalide peut être rejetée ? Ensuite, notre contrôleur vide dans cette section apparaîtra.

Nous ajoutons la méthode suivante au contrôle d'index :

public function __call($method, $args){
    return 'error request!';
}

Tant que vous accédez à des méthodes introuvables dans le contrôle d'index, vous accéderez à __call. Alors maintenant que nous avons atteint __call(), pour la page qui n'existe pas, pouvons-nous créer un 404.html et utiliser call() pour restituer le modèle.

2. Le contrôleur est introuvable.

La méthode ci-dessus est introuvable. Que dois-je faire si le contrôleur est introuvable ? Je saisis au hasard le contrôleur dans le navigateur, www.xiangmu.com/index/a/a. En fait, nous n'avons ni contrôleur ni méthode. Et si nous pouvions rejeter cette demande invalide ?

Utilisez ensuite le contrôleur Error.php ci-dessous pour résoudre le problème. Ajoutez que l'accès actuel est l'application d'index, nous mettons donc Error.php sous l'application d'index. De la même manière, nous pouvons également mettre en place des pages d'erreur telles que 404.

<?php
namespace app\index\controller;

use app\BaseController;

class Error extends BaseController
{
    public function __call($method, $args){
            return &#39;error request!&#39;;
    }
}

Ce qui précède est l'explication pertinente sur le contrôleur vide, allez l'essayer maintenant !

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!

Déclaration:
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