摘要:原文是在我自己博客中,小伙伴也可以點(diǎn)閱讀原文進(jìn)行跳轉(zhuǎn)查看,還有好聽的背景音樂噢介紹一個(gè)簡(jiǎn)單的框架,框架中實(shí)現(xiàn)了和層,層使用的組件,實(shí)現(xiàn)了一些簡(jiǎn)單的設(shè)計(jì)模式,單一入口自動(dòng)加載。
charm_PHP 介紹原文是在我自己博客中,小伙伴也可以點(diǎn)閱讀原文進(jìn)行跳轉(zhuǎn)查看,還有好聽的背景音樂噢~
一個(gè)簡(jiǎn)單的MVC框架,框架中實(shí)現(xiàn)了C和V層,M層使用composer的PHP組件——Medoo,實(shí)現(xiàn)了一些簡(jiǎn)單的設(shè)計(jì)模式,單一入口、自動(dòng)加載。
本框架遵循PSR規(guī)范,使用命名空間來規(guī)范類于類之間的互相合作;
目錄app -> 應(yīng)用目錄 controller -> 控制器目錄 core -> 公共、核心文件目錄 views -> 視圖目錄 resource -> 資源目錄(js、images、css等) system config -> 框架配置文件目錄 core -> 框架核心文件目錄 Charm.php -> 核心文件 Common.php -> 公共方法 Cofig.php -> 配置類 Core.php -> 核心文件 Log.php -> 日志類 Model.php -> 數(shù)據(jù)庫(kù)類 Page.php -> 分頁(yè)類 Route.php -> 路由類 Security.php -> 驗(yàn)證類 Session.php -> session類 dirves -> 驅(qū)動(dòng)文件目錄 vendor -> PHP組件初始化
本地下載項(xiàng)目:git clone https://github.com/charm-v/ch...
打開cmd,在項(xiàng)目下輸入 compoer install
運(yùn)行框架
全局方法 model()Use: $model =& model();
post($key)Use: $postData = post(); OR $name = post("name");
get($key)Use: $getData = get(); OR $name = get("name");
request($key, $type = "get")Use:
$getName = request("name", "get"); $posttName = request("name", "POST");` $requestName = request("name", "request");`ajaxReturn($status, $msg = "")
Use:
1、`ajaxReturn(200, "ok"); => {"status":200, "msg":"ok"}` 2、$returnData = [ "state" => 400, "message" => "error", "data" => [] ]; ajaxReturn($returnData); => {"state":400, "error":"ok","data":[]}view($viewName, $data = [])
Use:
view("home"); view("home", ["content" => "內(nèi)容"]);css($cssName, $cssPath = "css", $resource = "resource")
Use:
css("main.css"); ==> css("main.css", "css/home") ==>js($jsName, $jsPath = "css", $resource = "resource")
Use:
css("main.js"); ==> ......base_url($uri = "")
Use:
base_url(); ==> http://charm_PHP.com base_url("index/getUserList"); ==> http://charm_PHP.com/index/getUserListredirect($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 systemcoreConfig; // PAGENUM 配置項(xiàng)下標(biāo) page配置項(xiàng)文件名 Config::get("PAGE_NUM", "page");Log類
use systemcoreLog; // PAGENUM 配置項(xiàng)下標(biāo) page配置項(xiàng)文件名 Log::log($data, $fileName);Page類
use systemcoreConfig; use systemcorePage; if(isset($_GET["page"])) { $now_page = intval($_GET["page"]) ? intval($_GET["page"]) : 1; }else { $now_page = 1; } // 取得配置項(xiàng)每頁(yè)條數(shù) $pageNum = Config::get("PAGE_NUM", "page"); // 計(jì)算偏移量 $offset = $pageNum * ($now_page - 1); $data["count"] = parent::$model->count(table, $where); $where["LIMIT"] = [$offset, $pageNum]; $data["orderData"] = parent::$model->select("table", "*", $where); // 分頁(yè)處理 $objPage = new page($data["count"], $pageNum, $now_page, "?page={page}" . $parameter); $data["pageNum"] = $pageNum; // 生成分頁(yè)代碼 $data["pageList"] = $objPage->myde_write();依賴組件
Medoo
var-dumper
whoops
gitHub地址Charm_PHP
結(jié)語(yǔ)這個(gè)小框架,被我一直用作一些小型的外包項(xiàng)目中,暫時(shí)還沒有發(fā)現(xiàn)什么很嚴(yán)重的錯(cuò)誤,估計(jì)是黑客好心,看到這個(gè)項(xiàng)目這么爛不忍心黑?嗯...有時(shí)間的話還是很想補(bǔ)充、完善一下這個(gè)框架的。
對(duì)了,這個(gè)小框架的原型是我在慕課網(wǎng)的一節(jié)課程中學(xué)習(xí)到的,自己敲出來后,然后就拿來自己用啦,注明一下課程的地址,想學(xué)習(xí)的小伙伴可以去學(xué)習(xí)一下:從零開始打造自己的PHP框架。,嗯,就先介紹到這里啦
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/26084.html
摘要:前言在說架構(gòu)之前,先說說框架吧。在架構(gòu)中就是這個(gè)轉(zhuǎn)接頭。當(dāng)一個(gè)新框架誕生后,關(guān)注點(diǎn)從學(xué)習(xí)這個(gè)框架,慢慢變成了這個(gè)框架是如何設(shè)計(jì)的,解決什么樣的問題。前幾年使用過各種框架,小到,大到。 前言 在說 MVC 架構(gòu)之前,先說說PHP框架吧。很多很多學(xué)完P(guān)HP語(yǔ)言的人,面對(duì)的就是PHP各種各樣的框架。什么TP啊、Yii啊、CI啊,還有很流行的laravel啊等等。 他們的大部分都會(huì)說自己是基于...
摘要:所以我查了很多的材料,希望能從自己的角度上用通俗的語(yǔ)言闡述前端框架的演變。現(xiàn)在,前端頁(yè)面會(huì)有很多復(fù)雜的交互邏輯和用戶體驗(yàn),如果還使用之前老的框架,對(duì)層的操作就會(huì)難以維護(hù),這就是前端框架要不斷演變的主要原因。 說實(shí)在的,我不覺得MVC,MVVM這些框架有什么難的,直到我想寫一篇文章去系統(tǒng)的闡述它們。我遇到了以下幾個(gè)問題,1.不同的文章說的南轅北轍 2.沒有一個(gè)清晰的大綱和框架分類。所以我...
摘要:所以我查了很多的材料,希望能從自己的角度上用通俗的語(yǔ)言闡述前端框架的演變。現(xiàn)在,前端頁(yè)面會(huì)有很多復(fù)雜的交互邏輯和用戶體驗(yàn),如果還使用之前老的框架,對(duì)層的操作就會(huì)難以維護(hù),這就是前端框架要不斷演變的主要原因。 說實(shí)在的,我不覺得MVC,MVVM這些框架有什么難的,直到我想寫一篇文章去系統(tǒng)的闡述它們。我遇到了以下幾個(gè)問題,1.不同的文章說的南轅北轍 2.沒有一個(gè)清晰的大綱和框架分類。所以我...
閱讀 2820·2021-10-08 10:04
閱讀 3271·2021-09-10 11:20
閱讀 534·2019-08-30 10:54
閱讀 3322·2019-08-29 17:25
閱讀 2307·2019-08-29 16:24
閱讀 894·2019-08-29 12:26
閱讀 1451·2019-08-23 18:35
閱讀 1939·2019-08-23 17:53