《PHP教程:CI框架實(shí)現(xiàn)框架前后端分離的方法詳解》要點(diǎn):
本文介紹了PHP教程:CI框架實(shí)現(xiàn)框架前后端分離的方法詳解,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP教程本文實(shí)例分析了CI框架實(shí)現(xiàn)框架前后端分離的方法.分享給大家供大家參考,具體如下:
PHP教程我們?cè)谑褂肅I框架開(kāi)發(fā)中(或者使用所有的其他框架開(kāi)發(fā)中),總是習(xí)慣于將所開(kāi)發(fā)項(xiàng)目的前端和后臺(tái)分離開(kāi)來(lái),將各自的控制器、模型或視圖放到不同的文件夾中.在這一點(diǎn)上ThinkPHP框架要比CI框架更要方便一些.這篇博文我們就講述如何實(shí)現(xiàn)根據(jù)CI框架開(kāi)發(fā)將前后端實(shí)現(xiàn)分離.(本文以本人開(kāi)發(fā)的Pkadmin后臺(tái)管理系統(tǒng)為例,Pkadmin后臺(tái)管理系統(tǒng)是基于Codeigniter_v3.1.0框架和Olive Admin后臺(tái)模版進(jìn)行開(kāi)發(fā)的,在這里就不過(guò)多的介紹,感情趣的朋友可以到Github進(jìn)行查看歡迎大家指正相互學(xué)習(xí).
PHP教程Github地址:https://github.com/zhihua-wei/Pkadmin)
PHP教程1、建立合理的目錄結(jié)構(gòu)
PHP教程CI框架的目錄結(jié)構(gòu)以及各目錄的功能相信大家都已經(jīng)很了解了,在這里就不在重復(fù)的進(jìn)行介紹了(如果還有不是很明白的可以去看博主的博客專欄).我們要實(shí)現(xiàn)前后端框架功能分離,首先就要建立合理的目錄結(jié)構(gòu),也就是你想將你的前端控制器放在何處、后臺(tái)控制器放在何處、前端視圖放在那個(gè)文件夾、后臺(tái)管理視圖放在那個(gè)文件夾.
PHP教程
PHP教程如上圖是Pkadmin后臺(tái)管理系統(tǒng)的目錄結(jié)構(gòu),我將控制器全部放在框架本身的controllers文件夾中,只添加了不同的前端后臺(tái)文件夾存放各自的控制器文件,視圖也是同樣.不做贅述.
PHP教程2、擴(kuò)展加載器設(shè)置視圖路徑
PHP教程① 為了項(xiàng)目有更好的維護(hù)性,我把視圖路徑設(shè)置為常量,在App/config/constants.php中進(jìn)行定義常量:
PHP教程
//定義前臺(tái)視圖路徑常量
define('HOME_VIEW_DIR', 'views/Home/');
//定義后臺(tái)視圖路徑常量
define('ADMIN_VIEW_DIR', 'views/Pkadmin/');
//版本
define('PKADMIN_VERSION', '1.0.0');
PHP教程② 擴(kuò)展加載器
PHP教程加載器如何擴(kuò)展如果有博友不會(huì)的可以去查看CI框架手冊(cè),上面講的非常清楚.(多說(shuō)一句:在APP/core文件夾下創(chuàng)建PK_Loader.php文件)
PHP教程
<?php
/**
* ==========================================
* Created by Pocket Knife Technology.
* Author: ZhiHua_W <zhihua_wei@foxmail.com>
* Date: 2016/11/02 0031
* Time: 上午 9:19
* Project: Pkadmin后臺(tái)管理系統(tǒng)
* Version: 1.0.0
* Power: 加載器擴(kuò)展
* ==========================================
*/
defined('BASEPATH') OR exit('No direct script access allowed');
class PK_Loader extends CI_Loader {
/**
* 設(shè)置前臺(tái)視圖路徑
*/
public function set_home_view_dir() {
$this -> _ci_view_paths = array(APPPATH . HOME_VIEW_DIR => TRUE);
}
/**
* 設(shè)置后臺(tái)視圖路徑
*/
public function set_admin_view_dir() {
$this -> _ci_view_paths = array(APPPATH . ADMIN_VIEW_DIR => TRUE);
}
}
PHP教程3、擴(kuò)展控制器
PHP教程擴(kuò)展控制器主要是為了生成前臺(tái)后臺(tái)的父控制器方便與進(jìn)行操作繼承(為了方便可以很快明白其原理,代碼有所精簡(jiǎn)).
PHP教程
<?php
/**
* ==========================================
* Created by Pocket Knife Technology.
* Author: ZhiHua_W <zhihua_wei@foxmail.com>
* Date: 2016/11/02 0031
* Time: 上午 9:23
* Project: Pkadmin后臺(tái)管理系統(tǒng)
* Version: 1.0.0
* Power: 控制器擴(kuò)展
* ==========================================
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* 前臺(tái)父控制器
*/
class Home_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
$this -> load -> set_home_view_dir();
}
}
/**
* 后臺(tái)父類控制器
*/
class Pkadmin_Controller extends CI_Controller {
public $data;
public function __construct() {
parent::__construct();
$this -> load -> set_admin_view_dir();
}
}
PHP教程4、測(cè)試
PHP教程在Pkadmin控制器文件夾中新建Admin.php(后臺(tái)首頁(yè))控制器文件進(jìn)行輸出測(cè)試(代碼有所刪除精簡(jiǎn)).
PHP教程
<?php
/**
* ==========================================
* Created by Pocket Knife Technology.
* Author: ZhiHua_W <zhihua_wei@foxmail.com>
* Date: 2016/11/05 0015
* Time: 上午 10:23
* Project: Pkadmin后臺(tái)管理系統(tǒng)
* Version: 1.0.0
* Power: 后臺(tái)主頁(yè)控制器
* ==========================================
*/
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 后臺(tái)首頁(yè)action
*/
public function index() {
$this -> load -> view('admin.html', $data);
}
}
PHP教程后臺(tái)控制器繼承后臺(tái)父類控制器,前臺(tái)控制器集成前臺(tái)父類控制器,同樣的在各自視圖文件夾中建立相應(yīng)的視圖文件即可是想前后端的完美分離.
PHP教程更多關(guān)于CodeIgniter相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《ThinkPHP入門(mén)教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門(mén)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
PHP教程希望本文所述對(duì)大家基于CodeIgniter框架的PHP程序設(shè)計(jì)有所幫助.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/2149.html