一个简单的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/charm_PHP.git
- 打开cmd,在项目下输入
compoer install
- 运行框架
Use: $model =& model();
Use: $postData = post(); OR $name = post('name');
Use: $getData = get(); OR $name = get('name');
Use:
$getName = request('name', 'get');
$posttName = request('name', 'POST');`
$requestName = request('name', 'request');`
Use:
1、`ajaxReturn(200, 'ok'); => {'status':200, 'msg':'ok'}`
2、$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();