关于TinyMVC

半年前写的一个微型框架,参考了部分micromvc的思想。简约为原则的高性能框架,包含:路由,简单权限验证,cookie,session,ORM,view,validation,cache等等。

现在的博客就是用此框架搭建的。

ORM介绍

  • 仿tp的orm,更简单,效率更优。注意使用时一定要绑定变量!
  • 支持主从读写分离,支持主从随机读取;
  • 对于直接执行原生sql语句,主库用execute,从库用query,原生sql也支持变量绑定
  • 支持prefix
  • 支持变量绑定的函数有:where,group,having,order,第一个参数为string,第二个参数为绑定变量数组
  • 不支持变量绑定的函数有:field,table,join,limit,只支持一个string参数(limit除外)。limit会对传入的值强行intval,防止后端分页没有处理用户输入的安全隐患
  • 对于链式操作,会在table和join中自动加入prefix,指定表的情况:TABLE_NAME会转成:pre_table_name
  • 对于query和execute不支持自动加入prefix,由于本身就是原生sql语句,直接写表名即可

Theme Builder介绍

  • 设计思想:不重复写模板和逻辑,通过简单配置实现某些通用功能。
  • 设计思路:在控制器(controller)中指定附加action,theme builder读取辅助类(helper)中的配置进行处理。
  • Tabs: bootstrap风格的tab,ajax显示content。
  • Datatables:bootstrap风格的数据列表。可用作普通分页、排序、过滤列表或单纯table列表

路由举例配置

return array(
    // 路由配置
    'routes' => array(
        'admin' => 'admin', // 方式1,子模块模式
        'page/{id}' => function($id){ // 方式2,直接处理数据
            echo md5($id);
        },
        '{num}' => function ($num, &$controller, &$method, &$pathInfo) { // 方式3:指定c,m,p
            $controller = 'Index';
            $method = 'index';
            $pathInfo = array($num);
        },
        'param/{param?}' => function ($param, &$controller, &$method, &$pathInfo) { // 例:最后一个参数可不传递, 用'?'
            $controller = 'Index';
            $method = 'test';
            $pathInfo = array($param);
        },
    ),
    // 路由匹配后的正则配置
    'pattern' => array(
        'num' => '[0-9]+',
        'param' => '[0-9]*',
    ),
);

更多介绍

移步:

如果您觉得您在我这里学到了新姿势,博主支持转载,姿势本身就是用来相互学习的。同时,本站文章如未注明均为 hisune 原创 请尊重劳动成果 转载请注明 转自: 自用框架tiny mvc framework开源了 - hisune.com