摘要:原文是在我自己博客中,小伙伴也可以點閱讀原文進行跳轉查看,還有好聽的背景音樂噢介紹一個簡單的框架,框架中實現了和層,層使用的組件,實現了一些簡單的設計模式,單一入口自動加載。
charm_PHP 介紹原文是在我自己博客中,小伙伴也可以點閱讀原文進行跳轉查看,還有好聽的背景音樂噢~
一個簡單的MVC框架,框架中實現了C和V層,M層使用composer的PHP組件——Medoo,實現了一些簡單的設計模式,單一入口、自動加載。
本框架遵循PSR規范,使用命名空間來規范類于類之間的互相合作;
目錄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...
打開cmd,在項目下輸入 compoer install
運行框架
全局方法 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" => "內容"]);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 配置項下標 page配置項文件名 Config::get("PAGE_NUM", "page");Log類
use systemcoreLog; // PAGENUM 配置項下標 page配置項文件名 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; } // 取得配置項每頁條數 $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();依賴組件
Medoo
var-dumper
whoops
gitHub地址Charm_PHP
結語這個小框架,被我一直用作一些小型的外包項目中,暫時還沒有發現什么很嚴重的錯誤,估計是黑客好心,看到這個項目這么爛不忍心黑?嗯...有時間的話還是很想補充、完善一下這個框架的。
對了,這個小框架的原型是我在慕課網的一節課程中學習到的,自己敲出來后,然后就拿來自己用啦,注明一下課程的地址,想學習的小伙伴可以去學習一下:從零開始打造自己的PHP框架。,嗯,就先介紹到這里啦
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26084.html
摘要:前言在說架構之前,先說說框架吧。在架構中就是這個轉接頭。當一個新框架誕生后,關注點從學習這個框架,慢慢變成了這個框架是如何設計的,解決什么樣的問題。前幾年使用過各種框架,小到,大到。 前言 在說 MVC 架構之前,先說說PHP框架吧。很多很多學完PHP語言的人,面對的就是PHP各種各樣的框架。什么TP啊、Yii啊、CI啊,還有很流行的laravel啊等等。 他們的大部分都會說自己是基于...
摘要:所以我查了很多的材料,希望能從自己的角度上用通俗的語言闡述前端框架的演變。現在,前端頁面會有很多復雜的交互邏輯和用戶體驗,如果還使用之前老的框架,對層的操作就會難以維護,這就是前端框架要不斷演變的主要原因。 說實在的,我不覺得MVC,MVVM這些框架有什么難的,直到我想寫一篇文章去系統的闡述它們。我遇到了以下幾個問題,1.不同的文章說的南轅北轍 2.沒有一個清晰的大綱和框架分類。所以我...
摘要:所以我查了很多的材料,希望能從自己的角度上用通俗的語言闡述前端框架的演變。現在,前端頁面會有很多復雜的交互邏輯和用戶體驗,如果還使用之前老的框架,對層的操作就會難以維護,這就是前端框架要不斷演變的主要原因。 說實在的,我不覺得MVC,MVVM這些框架有什么難的,直到我想寫一篇文章去系統的闡述它們。我遇到了以下幾個問題,1.不同的文章說的南轅北轍 2.沒有一個清晰的大綱和框架分類。所以我...
閱讀 2809·2021-10-08 10:04
閱讀 3198·2021-09-10 11:20
閱讀 523·2019-08-30 10:54
閱讀 3306·2019-08-29 17:25
閱讀 2302·2019-08-29 16:24
閱讀 885·2019-08-29 12:26
閱讀 1447·2019-08-23 18:35
閱讀 1931·2019-08-23 17:53