原文是在我本身博客中,小伙伴也能够点阅读原文进行跳转查看,还有好听的背景音乐噢~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框架。,嗯,就先介绍到这里啦