Skip to content
php微型框架
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.coveralls.yml
.travis.yml
README.md
composer.json
phpunit.xml.dist

README.md

mpf微型PHP框架

Latest Stable Version Total Downloads Build Status Coverage Status

mpf框架是micro php framework的简称;这是一款微型框架,代码的压缩包只有50k左右;源代码简单易懂,代码注释详细;也是一款基于组件的框架;也是有简洁和方便的数据库操作类;也可以作为一个工具包来使用;框架的扩展简单。

mpf框架提供了数据库操作模块、缓存模块、路由模块、异常处理、组件机制、自动加载、验证码类、分页类、服务程序模块;这些部分都是单独拿出来用的,框架模块之间没有一点依赖。

在线文档

安装

php的版本需要5.4+

创建新项目并安装

composer create-project mpf/mpf-skeleton app

通过composer安装

composer require dzgz/mpf

压缩包下载,手动导入

Github https://codeload.github.com/dzts/mpf/zip/master

项目目录

├─application           应用目录

│   ├─home              home模块目录

│   │   ├─controller    控制器目录 

│   │   ├─model         模型目录

│   │   ├─view          视图目录

│   └─...               更多模块

├─config                应用目录

│   ├─config.php        配置文件

│   ├─di.php            组件的配置

├─lib                   公用方法、类库目录

│   ├─function.php      公用方法

├─public                web根目录(提高安全性)

│   ├─index.php         home模块目录入口文件

│   ├─admin.php         admin模块目录入口文件

│   ├─res               静态文件目录

├─runtime               运行目录

│   ├─error.log         日志文件

│   ├─fileCache         文件缓存目录

│   ├─smarty            smarty模板缓存目录

├─vender                composer目录(mpf框架代码在此目录下面)

配置文件config.php

<?php
return [
    //静态文件目录
    'static_path'=>__DIR__ . '/../public/res' 
];

配置文件di.php

<?php
return [
    //数据库配置
    'dbConn'=>[
        'class'=>function(){
            return new \mpf\db\DbConnection([
                "dbtype"=>"mysql",
                "dbcharset"=>"utf8",
                "dbport"=>3306,
                "pdoAttribute"=>[
                ],
                "dbhost"=>"localhost",
                "dbpwd"=>"123456",
                "dbroot"=>"root",
                "dbname"=>"test"
            ]);
        },
        'shared'=>true
    ],
    //缓存组件
    'cache'=>[
        'class'=>function(){
            return new \mpf\cache\FileCache(__DIR__.'/../runtime/fileCache');
        },
        'shared'=>true
    ],
    //验证码
    'validateCode'=>[
        'class'=>function(){
            return new \mpf\ext\ValidateCode(dirname(__DIR__) . '/lib/fonts/detourDork.ttf');
        },
        'shared'=>true
    ]
];

入口文件index.php

<?php

/*使用composer加载方式*/
include __DIR__ . '/../vendor/autoload.php';
//直接加载mpf.php文件
//include __DIR__ . '/../mpf/src/mpf.php';

date_default_timezone_set("Asia/Shanghai");
ini_set('default_socket_timeout', 3);  
ini_set("session.cookie_httponly", 1); 

//应用根目录
$appRoot = dirname(__DIR__);

//定义项目公用类库自动加载,需要符合PSR4规范
mpf\core\Psr4AutoloaderClass::addNamespace('lib',$appRoot . '/lib');

//加载组件的配置
$diConfig = include $appRoot . '/config/di.php';
$Di = new mpf\core\Di();
$Di->betchRegister($diConfig);

//加载配置
$config = include $appRoot . '/config/config.php';

//APP_DEBUG为true时,是调试模式
define('APP_DEBUG',true);

//加载项目公用方法
include $appRoot . '/lib/function.php';

//注册模板组件,这里用的是smarty,也可以使用其他的模板引擎
$Di->register('smarty',function() use($appRoot){
        $smarty = new \Smarty();
        $smarty->compile_dir = $appRoot . '/runtime/smarty/home/smarty_compile';
        $smarty->cache_dir = $appRoot . '/runtime/smarty/home/smarty_cache';
        $smarty->template_dir = $appRoot . '/application/home/view/';
        $smarty->addPluginsDir($appRoot . '/application/home/view/plugin');
        return $smarty;
});

//注册错误和异常的捕获,设置错误日志文件
$ErrorHandler = new mpf\core\ErrorHandler($appRoot . '/runtime/error.log');
$ErrorHandler->register();

session_start();
session_write_close();

//实例化路由,并执行
$Router = new mpf\route\Router($appRoot . '/application/home','uri');
$Router->setPage404(__DIR__. '/404.html');
$Route = $Router->getRoute();
$Route->run();
You can’t perform that action at this time.