ホームページ  >  記事  >  バックエンド開発  >  CI フレームワークを使用してフレームワークのフロントエンドとバックエンドを分離する方法

CI フレームワークを使用してフレームワークのフロントエンドとバックエンドを分離する方法

不言
不言オリジナル
2018-06-14 14:08:092476ブラウズ

この記事では、フレームワークのフロントエンドとバックエンドの分離を実現するための CI フレームワークの方法を主に紹介し、関連するビュー、コントローラー設定、フロントエンドとバックエンドの分離の拡張について詳しく分析します。次へ

この記事の例では、CI フレームワークのフロントエンドとバックエンドの分離を実現する方法を分析します。 。参考までに皆さんと共有してください。詳細は次のとおりです。

私たちが CI フレームワークを使用して開発するとき (または他のすべてのフレームワークを使用して開発するとき)、フロントエンドとバックエンドを分離することに常に慣れています。開発したプロジェクトのそれぞれのコントローラー、モデル、またはビューを別のフォルダーに配置します。現時点では、CI フレームワークよりも ThinkPHP フレームワークの方が便利です。このブログ投稿では、CI フレームワーク開発に基づいてフロントエンドとバックエンドの実装を分離する方法について説明します。 (この記事では、私が開発した Pkadmin バックエンド管理システムを例に挙げます。Pkadmin バックエンド管理システムは、Codeigniter_v3.1.0 フレームワークと Olive Admin バックエンド テンプレートに基づいて開発されています。ここではあまり紹介しません。興味のある友人は確認してください。ようこそ、誰もが修正し、互いに学び合います

1. 合理的なディレクトリ構造を確立します

誰もが CI フレームワークのディレクトリ構造をすでに知っていると思います。各ディレクトリの機能については、ここでは繰り返し紹介しません (よく理解できない場合は、フロントエンドとバックエンドの機能を分けて説明します)。エンド フレームワークを使用する場合は、まず適切なディレクトリ構造を確立する必要があります。つまり、フロントエンド コントローラーをどこに配置するか、バックエンド コントローラーをどこに配置するか、どのフォルダーにフロントエンド ビューを表示するかを分離します。

私が配置したバックエンド管理システムのディレクトリ構造は、次のとおりです。すべてのコントローラーをフレームワーク自体のコントローラー フォルダーに追加し、それぞれのコントローラー ファイルを保存するために別のフロントエンド バックエンド フォルダーを追加するだけです。

#2 の拡張ローダーにも同じことが当てはまります。ビュー パスを設定します

① プロジェクトの保守性を高めるために、App/config/constants.php でビュー パスを定数に設定します。 定数を次の場所で定義します。

//定义前台视图路径常量
define('HOME_VIEW_DIR', 'views/Home/');
//定义后台视图路径常量
define('ADMIN_VIEW_DIR', 'views/Pkadmin/');
//版本
define('PKADMIN_VERSION', '1.0.0');

② 拡張ローダー

ローダーの拡張方法がわからないブロガーがいる場合は、CI フレームワークを確認してください。マニュアルには非常にわかりやすく説明されています (もう 1 つ: APP/core フォルダーに PK_Loader.php ファイルを作成します)

<?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 拡張コントローラー。

拡張コントローラーは、主にフロントエンドとバックエンドで親コントローラーを生成し、継承を操作するためのものです (原理をすぐに理解できるように、コードは便宜上簡略化されています)。 #

<?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. Test

出力テスト用に Pkadmin コントローラー フォルダーに新しい Admin.php (バックエンド ホーム ページ) コントローラー ファイルを作成します (コードは削除され、合理化されました)

<?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);
 }
}

バックグラウンド コントローラーはバックグラウンドの親クラス コントローラーを継承し、フロント デスク コントローラーはフロント デスクの親クラス コントローラーを統合します。それぞれのビュー フォルダーに対応するビュー ファイルを作成することは、フロント エンドとバック エンドを完全に分離することです。これがこの記事の内容全体です。関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

CI フレームワークでの無限分類と再帰の実装について。

CodeIgniter フレームワーク検証コード クラスについてライブラリ ファイルと使用法の分析

Nginx および CI フレームワークの 404 エラーを解決する方法 ##############################################

以上がCI フレームワークを使用してフレームワークのフロントエンドとバックエンドを分離する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。