charm_PHP,一個還有諸多問題的PHP MVC框架

原文是在我本身博客中,小夥伴也能夠點閱讀原文進行跳轉查看,還有好聽的背景音樂噢~javascript

charm_PHP

介紹

一個簡單的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組件

初始化

  1. 本地下載項目:git clone https://github.com/charm-v/ch...java

  2. 打開cmd,在項目下輸入 compoer installgit

  3. 運行框架github

init

全局方法

model()

Use: $model =& model();ajax

post($key)

Use: $postData = post(); OR $name = post('name');數據庫

get($key)

Use: $getData = get(); OR $name = get('name');設計模式

request($key, $type = 'get')

Use:session

$getName     = request('name', 'get');
$posttName   = request('name', 'POST');`
$requestName = request('name', 'request');`

ajaxReturn($status, $msg = '')

Use:

一、`ajaxReturn(200, 'ok'); => {'status':200, 'msg':'ok'}`

二、$returnData = [
    'state'   => 400,
    'message' => 'error',
    'data'    => []
];
ajaxReturn($returnData); => {'state':400, 'error':'ok','data':[]}

view($viewName, $data = [])

Use:

view('home');
view('home', ['content' => '內容']);

css($cssName, $cssPath = 'css', $resource = 'resource')

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" />

js($jsName, $jsPath = 'css', $resource = 'resource')

Use:

css('main.js'); 
==> <script type="text/javascript" src="http://charm_PHP.com/resource/js/main.js"></script>

......

base_url($uri = '')

Use:

base_url(); 
==> http://charm_PHP.com

base_url('index/getUserList'); 
==> http://charm_PHP.com/index/getUserList

redirect($uri, $flag = false)

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

類使用

Config類

use system\core\Config;

// PAGENUM 配置項下標 page配置項文件名
Config::get('PAGE_NUM', 'page');

Log類

use system\core\Log;

// PAGENUM 配置項下標 page配置項文件名
Log::log($data, $fileName);

Page類

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();

依賴組件

gitHub地址

結語

這個小框架,被我一直用做一些小型的外包項目中,暫時尚未發現什麼很嚴重的錯誤,估計是黑客好心,看到這個項目這麼爛不忍心黑?嗯...有時間的話仍是很想補充、完善一下這個框架的。
對了,這個小框架的原型是我在慕課網的一節課程中學習到的,本身敲出來後,而後就拿來本身用啦,註明一下課程的地址,想學習的小夥伴能夠去學習一下:從零開始打造本身的PHP框架。,嗯,就先介紹到這裏啦

相關文章
相關標籤/搜索