摘要:原文是在我自己博客中,小伙伴也可以点阅读原文进行跳转查看,还有好听的背景音乐噢介绍一个简单的框架,框架中实现了和层,层使用的组件,实现了一些简单的设计模式,单一入口自动加载。
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框架。,嗯,就先介绍到这里啦
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26084.html
摘要:前言在说架构之前,先说说框架吧。在架构中就是这个转接头。当一个新框架诞生后,关注点从学习这个框架,慢慢变成了这个框架是如何设计的,解决什么样的问题。前几年使用过各种框架,小到,大到。 前言 在说 MVC 架构之前,先说说PHP框架吧。很多很多学完PHP语言的人,面对的就是PHP各种各样的框架。什么TP啊、Yii啊、CI啊,还有很流行的laravel啊等等。 他们的大部分都会说自己是基于...
摘要:所以我查了很多的材料,希望能从自己的角度上用通俗的语言阐述前端框架的演变。现在,前端页面会有很多复杂的交互逻辑和用户体验,如果还使用之前老的框架,对层的操作就会难以维护,这就是前端框架要不断演变的主要原因。 说实在的,我不觉得MVC,MVVM这些框架有什么难的,直到我想写一篇文章去系统的阐述它们。我遇到了以下几个问题,1.不同的文章说的南辕北辙 2.没有一个清晰的大纲和框架分类。所以我...
摘要:所以我查了很多的材料,希望能从自己的角度上用通俗的语言阐述前端框架的演变。现在,前端页面会有很多复杂的交互逻辑和用户体验,如果还使用之前老的框架,对层的操作就会难以维护,这就是前端框架要不断演变的主要原因。 说实在的,我不觉得MVC,MVVM这些框架有什么难的,直到我想写一篇文章去系统的阐述它们。我遇到了以下几个问题,1.不同的文章说的南辕北辙 2.没有一个清晰的大纲和框架分类。所以我...
阅读 2808·2021-10-08 10:04
阅读 3197·2021-09-10 11:20
阅读 521·2019-08-30 10:54
阅读 3304·2019-08-29 17:25
阅读 2300·2019-08-29 16:24
阅读 882·2019-08-29 12:26
阅读 1445·2019-08-23 18:35
阅读 1928·2019-08-23 17:53