一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - CI框架實現框架前后端分離的方法詳解

CI框架實現框架前后端分離的方法詳解

2021-04-12 14:13Zhihua_W PHP教程

這篇文章主要介紹了CI框架實現框架前后端分離的方法,結合實例形式較為詳細的分析了CI框架前后端分離的相關視圖、控制器設置與擴展等操作技巧,需要的朋友可以參考下

本文實例分析了CI框架實現框架前后端分離的方法。分享給大家供大家參考,具體如下:

我們在使用CI框架開發中(或者使用所有的其他框架開發中),總是習慣于將所開發項目的前端和后臺分離開來,將各自的控制器、模型或視圖放到不同的文件夾中。在這一點上ThinkPHP框架要比CI框架更要方便一些。這篇博文我們就講述如何實現根據CI框架開發將前后端實現分離。(本文以本人開發的Pkadmin后臺管理系統為例,Pkadmin后臺管理系統是基于Codeigniter_v3.1.0框架和Olive Admin后臺模版進行開發的,在這里就不過多的介紹,感情趣的朋友可以到Github進行查看歡迎大家指正相互學習。

Github地址:https://github.com/zhihua-wei/Pkadmin

1、建立合理的目錄結構

CI框架的目錄結構以及各目錄的功能相信大家都已經很了解了,在這里就不在重復的進行介紹了(如果還有不是很明白的可以去看博主的博客專欄)。我們要實現前后端框架功能分離,首先就要建立合理的目錄結構,也就是你想將你的前端控制器放在何處、后臺控制器放在何處、前端視圖放在那個文件夾、后臺管理視圖放在那個文件夾。

CI框架實現框架前后端分離的方法詳解

如上圖是Pkadmin后臺管理系統的目錄結構,我將控制器全部放在框架本身的controllers文件夾中,只添加了不同的前端后臺文件夾存放各自的控制器文件,視圖也是同樣。不做贅述。

2、擴展加載器設置視圖路徑

① 為了項目有更好的維護性,我把視圖路徑設置為常量,在App/config/constants.php中進行定義常量:

?
1
2
3
4
5
6
//定義前臺視圖路徑常量
define('HOME_VIEW_DIR', 'views/Home/');
//定義后臺視圖路徑常量
define('ADMIN_VIEW_DIR', 'views/Pkadmin/');
//版本
define('PKADMIN_VERSION', '1.0.0');

② 擴展加載器

加載器如何擴展如果有博友不會的可以去查看CI框架手冊,上面講的非常清楚。(多說一句:在APP/core文件夾下創建PK_Loader.php文件)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
/**
 * ==========================================
 * Created by Pocket Knife Technology.
 * Author: ZhiHua_W <[email protected]>
 * 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、擴展控制器

擴展控制器主要是為了生成前臺后臺的父控制器方便與進行操作繼承(為了方便可以很快明白其原理,代碼有所精簡)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/**
 * ==========================================
 * Created by Pocket Knife Technology.
 * Author: ZhiHua_W <[email protected]>
 * 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();
 }
}

4、測試

在Pkadmin控制器文件夾中新建Admin.php(后臺首頁)控制器文件進行輸出測試(代碼有所刪除精簡)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
/**
 * ==========================================
 * Created by Pocket Knife Technology.
 * Author: ZhiHua_W <[email protected]>
 * 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);
 }
}

后臺控制器繼承后臺父類控制器,前臺控制器集成前臺父類控制器,同樣的在各自視圖文件夾中建立相應的視圖文件即可是想前后端的完美分離。

希望本文所述對大家基于CodeIgniter框架的PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 视频大全在线观看免费 | 果冻传媒林予曦图片 | 波多野结衣在线观看中文字幕 | 久久国产视频网 | 亚洲www视频 | 免费欧美一级 | 婷婷色伊人 | 91精品国产在线 | 日韩性公交车上xxhd免费 | 国产精品久久久久久久牛牛 | 免费被靠视频动漫 | 国产欧美日韩一区二区三区在线 | 天天色一色| 国产中文视频 | 国产欧美日韩免费一区二区 | 日韩久久精品 | 水蜜臀 | 好男人资源免费观看 | 韩国三级在线播放 | 国产精品视频1区 | 91制片厂制作传媒免费版樱花 | 女人狂吮男人命根gif视频 | 校花被老头夺去第一次动图 | 激性欧美激情在线aa | 国产精品密播放国产免费看 | 精品一区二区三区在线成人 | 日本另类z0zx高清 | 99久久国产综合精麻豆 | 强插美女 | jm漫天堂破解版 | 成年人免费在线看的惊悚动作片 | www.一区 | 桃乃木香奈ipx在线播放 | 欧美精品一国产成人性影视 | 精品视频一区二区观看 | 好吊色青青青国产综合在线观看 | 毛片在线免费视频 | 国产精品久久久久久网站 | 美女用屁股把人吞进肚子 | 欧美一区二区三区在线观看不卡 | 亚洲乱码一二三四区国产 |