原文是在我本身博客中,小夥伴也能夠點閱讀原文進行跳轉查看,還有好聽的背景音樂噢~javascript
一個簡單的MVC框架,框架中實現了C和V層,M層使用composer的PHP組件——Medoo,實現了一些簡單的設計模式,單一入口、自動加載。php
本框架遵循PSR規範,使用命名空間來規範類於類之間的互相合做;css
app -> 應用目錄 controller -> 控制器目錄 core -> 公共、核心文件目錄 views -> 視圖目錄 resource -> 資源目錄(js、images、css等) system config -> 框架配置文件目錄 core -> 框架核心文件目錄 Charm.php -> 核心文件 Common.php -> 公共方法 Cofig.php -> 配置類 Core.php -> 核心文件 Log.php -> 日誌類 Model.php -> 數據庫類 Page.php -> 分頁類 Route.php -> 路由類 Security.php -> 驗證類 Session.php -> session類 dirves -> 驅動文件目錄 vendor -> PHP組件
本地下載項目:git clone https://github.com/charm-v/ch...java
打開cmd,在項目下輸入 compoer install
git
運行框架github
Use: $model =& model();
ajax
Use: $postData = post(); OR $name = post('name');
數據庫
Use: $getData = get(); OR $name = get('name');
設計模式
Use:session
$getName = request('name', 'get'); $posttName = request('name', 'POST');` $requestName = request('name', 'request');`
Use:
一、`ajaxReturn(200, 'ok'); => {'status':200, 'msg':'ok'}` 二、$returnData = [ 'state' => 400, 'message' => 'error', 'data' => [] ]; ajaxReturn($returnData); => {'state':400, 'error':'ok','data':[]}
Use:
view('home'); view('home', ['content' => '內容']);
Use:
css('main.css'); ==> <link rel="stylesheet" type="text/css" href="http://charm_PHP.com/resource/css/main.css" media="all" /> css('main.css', 'css/home') ==> <link rel="stylesheet" type="text/css" href="http://charm_PHP.com/resource/css/home/main.css" media="all" />
Use:
css('main.js'); ==> <script type="text/javascript" src="http://charm_PHP.com/resource/js/main.js"></script> ......
Use:
base_url(); ==> http://charm_PHP.com base_url('index/getUserList'); ==> http://charm_PHP.com/index/getUserList
Use:
redirect('index/editUserInfo'); ==> Location: http://charm_PHP.com/index/editUserInfo redirect('baidu.com'); ==> Location: http://baidu.com redirect('https://google.com'); ==> Location: https://google.com
use system\core\Config; // PAGENUM 配置項下標 page配置項文件名 Config::get('PAGE_NUM', 'page');
use system\core\Log; // PAGENUM 配置項下標 page配置項文件名 Log::log($data, $fileName);
use system\core\Config; use system\core\Page; if(isset($_GET['page'])) { $now_page = intval($_GET['page']) ? intval($_GET['page']) : 1; }else { $now_page = 1; } // 取得配置項每頁條數 $pageNum = Config::get('PAGE_NUM', 'page'); // 計算偏移量 $offset = $pageNum * ($now_page - 1); $data['count'] = parent::$model->count(table, $where); $where['LIMIT'] = [$offset, $pageNum]; $data['orderData'] = parent::$model->select('table', '*', $where); // 分頁處理 $objPage = new page($data['count'], $pageNum, $now_page, '?page={page}' . $parameter); $data['pageNum'] = $pageNum; // 生成分頁代碼 $data['pageList'] = $objPage->myde_write();
這個小框架,被我一直用做一些小型的外包項目中,暫時尚未發現什麼很嚴重的錯誤,估計是黑客好心,看到這個項目這麼爛不忍心黑?嗯...有時間的話仍是很想補充、完善一下這個框架的。
對了,這個小框架的原型是我在慕課網的一節課程中學習到的,本身敲出來後,而後就拿來本身用啦,註明一下課程的地址,想學習的小夥伴能夠去學習一下:從零開始打造本身的PHP框架。,嗯,就先介紹到這裏啦