이 글에서는 프레임워크의 프런트엔드와 백엔드 분리를 구현하기 위한 CI 프레임워크의 방법을 주로 소개합니다. CI 프레임워크의 프런트엔드와 백엔드 분리에 대한 관련 뷰, 컨트롤러 설정 및 확장을 자세히 분석합니다. 도움이 필요한 친구들이 참고할 수 있는 형태입니다
이 글에서는 프레임워크의 프론트엔드와 백엔드를 분리하는 CI 프레임워크의 방식을 예제를 통해 분석합니다. 참고하실 수 있도록 자세한 내용은 다음과 같습니다.
CI 프레임워크를 사용하여 개발할 때(또는 다른 모든 프레임워크를 사용하여 개발할 때) 우리는 항상 개발된 프로젝트의 프런트엔드와 백엔드를 분리하는 데 익숙합니다. 각각을 다른 폴더로 제어합니다. 이 시점에서는 CI 프레임워크보다 ThinkPHP 프레임워크가 더 편리합니다. 이번 블로그 포스팅에서는 CI 프레임워크 개발을 기반으로 프런트엔드 구현과 백엔드 구현을 분리하는 방법에 대해 설명하겠습니다. (이 글은 제가 개발한 Pkadmin 백그라운드 관리 시스템을 예로 들어 설명합니다. Pkadmin 백그라운드 관리 시스템은 Codeigniter_v3.1.0 프레임워크와 Olive Admin 백그라운드 템플릿을 기반으로 개발되었습니다. 여기서는 자세한 소개를 생략하겠습니다. 관심 있는 친구들은 확인하시면 됩니다. Github에 오신 것을 환영합니다.
1. 합리적인 디렉터리 구조를 설정하세요
모두가 이미 CI 프레임워크의 디렉터리 구조와 각 디렉터리의 기능을 알고 있다고 생각하므로 생략하겠습니다. 여기에 다시 소개합니다.(더 있으면) 더 명확하게 알고 싶다면 블로거의 블로그 칼럼을 읽어보세요.) 프론트엔드 프레임워크와 백엔드 프레임워크의 기능을 분리하려면 먼저 설정해야 합니다. 합리적인 디렉터리 구조, 즉 프런트 엔드 컨트롤러와 백엔드 컨트롤러를 배치할 위치, 프런트 엔드 보기를 배치할 위치, 백엔드 관리 뷰를 배치할 폴더 ?
위 그림은 Pkadmin 백엔드 관리 시스템의 디렉토리 구조입니다. 프레임워크 자체의 컨트롤러 폴더에 모든 컨트롤러를 넣었습니다.
2. 확장 로더는 뷰 경로를 설정합니다.
① 프로젝트의 유지 관리를 향상시키기 위해 뷰 경로를 상수로 설정하고 정의합니다. App/config/constants.php의 상수:
//定义前台视图路径常量 define('HOME_VIEW_DIR', 'views/Home/'); //定义后台视图路径常量 define('ADMIN_VIEW_DIR', 'views/Pkadmin/'); //版本 define('PKADMIN_VERSION', '1.0.0');
② 확장 로더
로더 확장 방법 확장 방법을 모르는 블로거가 있다면 CI 프레임워크를 확인해 보세요. 매뉴얼은 매우 명확합니다(한 가지 더: 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('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. 확장 컨트롤러는 주로 프런트엔드를 생성하는 데 사용됩니다. 백그라운드에 있는 상위 컨트롤러는 작업 상속에 편리합니다. (원리를 빠르게 이해할 수 있도록 코드를 단순화했습니다.)
<?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(); } }
4. 테스트
Pkadmin 컨트롤러 폴더에 새 관리자를 만듭니다. 출력 테스트용 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('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); } }백그라운드 컨트롤러는 백그라운드 상위 클래스 컨트롤러를 상속하고 프런트 데스크 컨트롤러는 프런트 데스크 상위 클래스 컨트롤러를 통합합니다. 각각의 뷰 폴더에 해당 뷰 파일을 생성하면 전면과 후면이 완벽하게 분리됩니다. 위 내용이 모든 사람에게 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요! 관련 추천:
CI 프레임워크의 무한 분류 및 재귀 구현에 대해
CodeIgniter 프레임워크 검증 코드 라이브러리 파일 분석 및 사용법에 대해
Nginx 및 CI 프레임워크에서 404 오류를 해결하는 방법
위 내용은 CI 프레임워크를 사용하여 프레임워크의 프런트엔드와 백엔드를 분리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!