Maison >développement back-end >tutoriel php >Comment inclure dynamiquement des fichiers à l'aide de ThinkPHP

Comment inclure dynamiquement des fichiers à l'aide de ThinkPHP

不言
不言original
2018-06-11 13:51:111672parcourir

Cet article présente principalement la méthode d'inclusion dynamique de fichiers dans ThinkPHP. C'est une compétence très pratique dans le développement de projets ThinkPHP. Les amis qui en ont besoin peuvent s'y référer

L'exemple de cet article décrit la mise en œuvre de. fichiers inclus dynamiquement dans la méthode ThinkPHP. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Description du problème : Il est également très courant de rencontrer des problèmes lors de la réalisation de projets. Généralement, la page d'accueil contient des en-têtes et des étapes afin de faciliter la gestion, ceux-ci doivent être implémentés. en utilisant des fichiers d'inclusion. ThinkPHP Fournit une méthode pour inclure des fichiers. Ce qui précède est le moyen le plus simple d'inclure des opérations. Cependant, pendant le processus en cours, j'ai constaté que seul le fichier modèle est demandé lors de la demande, ce qu'on appelle l'inclusion statique. Mais si vous rencontrez un menu Il est difficile à gérer s'il est généré dynamiquement

J'ai trouvé une solution sur Internet : utiliser Widget

1 Nous implémentons un Widget pour l'affichage classifié sur le. Tout d'abord, nous devons implémenter notre première couche de contrôleur de widget CateWidget, comme suit :

class CateWidget extends Action {  
    public function menu(){  
        return 'menuWidget';  
    }  
}

Notez qu'elle est définie dans le package Widget, ce qui est différent de l'action générale

2. Ensuite, on le passe dans le template. La méthode R appelle ce Widget (la méthode Widget étendue utilise la méthode W dans le template).

{:R('Cate/Menu','','Widget')}
Le résultat de sortie après exécution est : menuWidget

3 Si la méthode de menu de la classe CateWidget est modifiée en :


Le code est le suivant. suit :

class CateWidget extends Action {  
    public function menu(){  
        echo 'menuWidget';  
    }  
}

4. L'utilisation dans le modèle doit être modifiée en :

Le code est le suivant :

{~R('Cate/Menu','','Widget')}
5. Si nécessaire, lors de l'appel du Widget Pour utiliser les paramètres, vous pouvez les définir comme ceci :


Le code est le suivant :

class CateWidget extends Action {  
    public function menu($id,$name){  
        echo $id.':'.$name;  
    }  
}
6. dans le modèle, utilisez :


Le code est le suivant :

{:R('Cate/Menu',array(5,'thinkphp'),'Widget')}
affichera 5 : thinkphp

7. Prenons un exemple plus compliqué :


Le code est le suivant :

class CateWidget extends Action {  
    public function menu(){  
        $menu = M('Cate')->getField('id,title');  
        $this->assign('menu',$menu);  
        $this->display('Cate:menu');  
    }  
}
8. La classe CateWiget restitue un fichier modèle Tpl/Cate/menu.html. différence entre l'utilisation de cette méthode pour implémenter Widget (dans la méthode d'extension Widget, la méthode renderFile doit être appelée pour restituer le modèle). Utilisation de

dans le fichier modèle menu.html : {$key} :{$title}

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. .Plus connexe Veuillez faire attention au contenu du site Web chinois PHP !

Recommandations associées :

À propos du code de la classe de cache de fichiers ThinkPHP

Analyse des fonctions et de l'utilisation des widgets dans Framework thinkPHP5

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