Cet article présente principalement la méthode du framework CI pour réaliser la séparation du front-end et du back-end du framework. Il analyse en détail les vues associées, les paramètres du contrôleur et l'expansion de la séparation front-end et back-end. du cadre CI sous forme d'exemples. Les amis dans le besoin peuvent s'y référer. Suivant
Cet article analyse la méthode du cadre CI pour séparer les extrémités avant et arrière du cadre à travers des exemples. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Lorsque nous développons en utilisant le framework CI (ou développons en utilisant tous les autres frameworks), nous sommes toujours habitués à séparer le front-end et le back-end de le projet que nous développons. Placez les contrôleurs, modèles ou vues respectifs dans différents dossiers. À ce stade, le framework ThinkPHP est plus pratique que le framework CI. Dans cet article de blog, nous décrirons comment séparer l'implémentation front-end et back-end en fonction du développement du framework CI. (Cet article prend comme exemple le système de gestion d'arrière-plan Pkadmin développé par moi. Le système de gestion d'arrière-plan Pkadmin est développé sur la base du framework Codeigniter_v3.1.0 et du modèle d'arrière-plan Olive Admin. Je n'en présenterai pas trop ici. Les amis intéressés peuvent le vérifier sur Github. Bienvenue Tout le monde corrige et apprend les uns des autres
1. Établissez une structure de répertoires raisonnable
Je crois que tout le monde connaît déjà la structure de répertoires du framework CI et les fonctions de chaque répertoire. Le voici. Je ne le présenterai pas à plusieurs reprises (si vous ne le comprenez toujours pas, vous pouvez lire la colonne du blog du blogueur si nous voulons séparer les fonctions du front-end et). Pour les frameworks back-end, nous devons d'abord établir une structure de répertoires raisonnable, c'est-à-dire que vous souhaitez séparer le vôtre. Où placer le contrôleur frontal, où placer le contrôleur back-end, quel dossier placer la vue frontale. vers, et dans quel dossier placer la vue de gestion back-end
Comme indiqué ci-dessus, il s'agit de la structure de répertoires du système de gestion back-end Pkadmin. contrôleurs du framework lui-même, et a uniquement ajouté différents dossiers front-end et backend pour stocker leurs fichiers de contrôleur respectifs. La même chose est vraie pour les vues2.
① Afin d'avoir une meilleure maintenabilité du projet, j'ai défini le chemin de vue sur une constante dans App/config/constants.php Définir les constantes dans ://定义前台视图路径常量 define('HOME_VIEW_DIR', 'views/Home/'); //定义后台视图路径常量 define('ADMIN_VIEW_DIR', 'views/Pkadmin/'); //版本 define('PKADMIN_VERSION', '1.0.0');
<?php /** * ========================================== * Created by Pocket Knife Technology. * Author: ZhiHua_W <zhihua_wei@foxmail.com> * Date: 2016/11/02 0031 * Time: 上午 9:19 * Project: Pkadmin后台管理系统 * Version: 1.0.0 * Power: 加载器扩展 * ========================================== */ defined('BASEPATH') OR exit('No direct script access allowed'); class PK_Loader extends CI_Loader { /** * 设置前台视图路径 */ public function set_home_view_dir() { $this -> _ci_view_paths = array(APPPATH . HOME_VIEW_DIR => TRUE); } /** * 设置后台视图路径 */ public function set_admin_view_dir() { $this -> _ci_view_paths = array(APPPATH . ADMIN_VIEW_DIR => TRUE); } }
3.
Le contrôleur d'extension sert principalement à générer des contrôleurs parents dans le front-end et le backend pour plus de commodité et d'héritage des opérations (pour plus de commodité, vous pouvez rapidement comprendre le principe, le code a été rationalisé<). 🎜>
<?php /** * ========================================== * Created by Pocket Knife Technology. * Author: ZhiHua_W <zhihua_wei@foxmail.com> * Date: 2016/11/02 0031 * Time: 上午 9:23 * Project: Pkadmin后台管理系统 * Version: 1.0.0 * Power: 控制器扩展 * ========================================== */ defined('BASEPATH') OR exit('No direct script access allowed'); /** * 前台父控制器 */ class Home_Controller extends CI_Controller { public function __construct() { parent::__construct(); $this -> load -> set_home_view_dir(); } } /** * 后台父类控制器 */ class Pkadmin_Controller extends CI_Controller { public $data; public function __construct() { parent::__construct(); $this -> load -> set_admin_view_dir(); } }
Créez un nouveau fichier de contrôleur Admin.php dans le dossier du contrôleur Pkadmin (page d'accueil du backend) pour tests de sortie (le code a été supprimé et rationalisé). Pour le contrôleur de classe parent frontal, vous pouvez également créer les fichiers de vue correspondants dans les dossiers de vue respectifs pour obtenir une séparation parfaite du front-end et du back-end
. Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois
Recommandations associées :
<?php /** * ========================================== * Created by Pocket Knife Technology. * Author: ZhiHua_W <zhihua_wei@foxmail.com> * Date: 2016/11/05 0015 * Time: 上午 10:23 * Project: Pkadmin后台管理系统 * Version: 1.0.0 * Power: 后台主页控制器 * ========================================== */ defined('BASEPATH') OR exit('No direct script access allowed'); class Admin extends Pkadmin_Controller { public function __construct() { parent::__construct(); $this -> load -> model('login_model', 'admin'); $this -> load -> library('pagination'); } /** * Pkadmin 后台首页action */ public function index() { $this -> load -> view('admin.html', $data); } }
À propos de la mise en œuvre de la classification infinie et de la récursivité dans le framework CI
Analyse des fichiers et de l'utilisation de la bibliothèque de codes de vérification du framework CodeIgniterComment résoudre les erreurs 404 dans Nginx et le framework CI
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!