Maison  >  Article  >  développement back-end  >  Comment utiliser le framework CI pour séparer le front-end et le back-end du framework

Comment utiliser le framework CI pour séparer le front-end et le back-end du framework

不言
不言original
2018-06-14 14:08:092426parcourir

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 vues

2.

① 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');

② Chargeur d'extension

Comment étendre le chargeur S'il y a des blogueurs qui ne savent pas comment l'étendre, vous pouvez le consulter Le manuel du framework CI. l'explique très clairement (encore une chose : créez le fichier PK_Loader.php dans le dossier APP/core)

<?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(&#39;BASEPATH&#39;) OR exit(&#39;No direct script access allowed&#39;);
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(&#39;BASEPATH&#39;) OR exit(&#39;No direct script access allowed&#39;);
/**
 * 前台父控制器
 */
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();
 }
}

4. Testez

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(&#39;BASEPATH&#39;) OR exit(&#39;No direct script access allowed&#39;);
class Admin extends Pkadmin_Controller {
 public function __construct() {
  parent::__construct();
  $this -> load -> model(&#39;login_model&#39;, &#39;admin&#39;);
  $this -> load -> library(&#39;pagination&#39;);
 }
 /**
  * Pkadmin 后台首页action
  */
 public function index() {
  $this -> load -> view(&#39;admin.html&#39;, $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 CodeIgniter

Comment 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!

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