Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie das CI-Framework, um das Front- und Back-End des Frameworks zu trennen
Dieser Artikel stellt hauptsächlich die Methode des CI-Frameworks vor, um die Trennung von Front-End und Back-End des Frameworks zu realisieren. Er analysiert detailliert die zugehörigen Ansichten, Controller-Einstellungen und die Erweiterung der Front-End- und Back-End-Trennung des CI-Frameworks in Form von Beispielen. Freunde in Not können sich darauf beziehen.
Das Beispiel dieses Artikels analysiert die Methode des CI-Frameworks, um die Trennung von Front-End und Back-End zu realisieren Rahmen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Wenn wir mit dem CI-Framework entwickeln (oder mit allen anderen Frameworks entwickeln), sind wir es immer gewohnt, das Front-End und das Back-End zu trennen Legen Sie die jeweiligen Controller, Modelle oder Ansichten in verschiedenen Ordnern des von uns entwickelten Projekts ab. An diesem Punkt ist das ThinkPHP-Framework praktischer als das CI-Framework. In diesem Blogbeitrag beschreiben wir, wie man die Front-End- und Back-End-Implementierung basierend auf der CI-Framework-Entwicklung trennt. (In diesem Artikel wird das von mir entwickelte Pkadmin-Hintergrundverwaltungssystem als Beispiel verwendet. Das Pkadmin-Hintergrundverwaltungssystem basiert auf dem Codeigniter_v3.1.0-Framework und der Olive Admin-Hintergrundvorlage. Ich werde hier nicht zu viel vorstellen. Interessierte Freunde können es überprüfen raus auf Github. Willkommen Jeder korrigiert und lernt voneinander
1. Erstellen Sie eine vernünftige Verzeichnisstruktur
Ich glaube, jeder kennt bereits die Verzeichnisstruktur des CI-Frameworks und Hier sind die Funktionen der einzelnen Verzeichnisse Für das Back-End-Framework müssen wir zunächst eine angemessene Verzeichnisstruktur festlegen, d
Wie oben gezeigt, ist dies die Verzeichnisstruktur des Pkadmin-Backend-Verwaltungssystems Controllers-Ordner des Frameworks selbst und fügte nur unterschiedliche Front-End- und Backend-Ordner zum Speichern ihrer jeweiligen Controller-Dateien hinzu. Dasselbe gilt für die Ansichten.2. Der Erweiterungslader legt den Ansichtspfad fest
① Um eine bessere Wartbarkeit des Projekts zu erreichen, habe ich den Ansichtspfad auf eine Konstante in App/config/constants.php gesetzt. Definiere Konstanten in://定义前台视图路径常量 define('HOME_VIEW_DIR', 'views/Home/'); //定义后台视图路径常量 define('ADMIN_VIEW_DIR', 'views/Pkadmin/'); //版本 define('PKADMIN_VERSION', '1.0.0');② Erweiterungslader So erweitern Sie den Loader: Wenn es Blogger gibt, die nicht wissen, wie es geht, können Sie sich das CI-Framework ansehen klar (noch etwas: Erstellen Sie die Datei PK_Loader.php im Ordner 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('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. Erweiterter Controller
Erweiterte Controller dienen hauptsächlich der Vereinfachung der Generierung übergeordneter Controller im Front- und Backend und der Operationsvererbung (der Code ist der Einfachheit halber vereinfacht, damit Sie das Prinzip schnell verstehen können).4. Test
Erstellen Sie eine neue Admin.php-Controller-Datei (Backend-Homepage) im Pkadmin-Controller-Ordner für den Ausgabetest (der Code wurde gelöscht und optimiert). )<?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(); } }Der Hintergrund-Controller erbt den Hintergrund-Controller der übergeordneten Klasse, und der Front-Desk-Controller integriert den Front-Desk-Controller der übergeordneten Klasse und erstellt die entsprechende Ansicht Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich ist Achtung auf der chinesischen PHP-Website. Verwandte Empfehlungen:
Über die Implementierung der unendlichen Klassifizierung und Rekursion im CI-Framework
So lösen Sie 404-Fehler im Nginx- und CI-Framework
Das obige ist der detaillierte Inhalt vonSo verwenden Sie das CI-Framework, um das Front- und Back-End des Frameworks zu trennen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!