MicroPHP 2.2.6 发布 新增 HMVC 模式

狂奔的蜗牛.
 狂奔的蜗牛.
发布于 2014年04月24日
收藏 19

MicroPHP 2.2.6

增加了
1.HMVC支持。
    对应配置项:
    /**
     * 存放HMVC模块的文件夹路径名称
     */
    $system['hmvc_folder'] = $system['application_folder'] . '/modules';
    /**
     * 注册HMVC模块,这里填写模块名称关联数组,键是url中的模块别名,值是模块文件夹名称
     */
    $system['hmvc_modules'] = array('demo' => 'hmvc_demo');


    MicroPHP HMVC模块结构说明:
    每个模块文件夹里面必须有个名称为hmvc.php的模块配置文件。
    模块文件夹结构可以参考示例模块:hmvc_demo,位于:application/modules/hmvc_demo
    配置说明:
        1.模块配置文件和入口文件里面的主配置一样。 
        2.如果HMVC模块有自己的配置,模块就可以覆盖主配置。 
        3.模块配置里面已经配置了一些必要的配置项目。 
        4.如果HMVC模块需要其它不同于主配置的配置,那么取消配置前面的注释,然后配置即可。 
     提示
    1.$system['my_loader'],$system['hmvc_folder'],$system['hmvc_modules']这三个配置项在HMVC配置中无效。 
    2.HMVC模块共享主配置的:模型,视图,helper和类库。当有重名时,优先使用HMVC模块的。

    如何访问hvmc模块?
    访问hvmc模块很简单,只要在url控制器前面加上“模块名称/”即可,其它规则和以前框架规则一样。
    比如:
    1.http://127.0.0.1/?demo,访问的就是hmvc_demo模块默认的控制器和方法。
    2.http://127.0.0.1/?demo/home.index,访问的就是hmvc_demo模块home控制器doIndex()方法。
2.插件模式下的hmvc。
  a.WoniuLoader::instance($renew = null, $hmvc_module_floder = null)
  b.WoniuController::instance($classname_path = null, $hmvc_module_floder = NULL)
  c.WoniuModel::instance($classname_path = null, $hmvc_module_floder = NULL)
  a,b,c都增加了第二个参数$hmvc_module_floder即模块文件夹名称。
  比如:
     1.$hmvc_demo_loader=WoniuLoader::instance(true,'hmvc_demo');实例化模块hmvc_demo的一个loader实例
     2.$hmvc_demo_home=WoniuController::instance('home','hmvc_demo');实例化模块hmvc_demo的一个home控制器对象
     3.$hmvc_demo_model=WoniuModel::instance('HmvcModel','hmvc_demo');实例化模块hmvc_demo的一个HmvcModel模型对象
3.$this->input增加了post_get($key = null, $default = null, $xss_clean = false) 方法,先尝试从$_POST获取一个变量,没有的话再在$_GET里获取。
4.系统配置$system['view_folder']支持数组。
5.$this->view_path($view_name, $path_key = 0),增加了第二个参数。当视图配置文件夹$system['view_folder']是数组的时候, 
  可以指定数组的键,用于指定使用哪个视图路经。该方法是获取视图绝对路径,在视图中include其它视图的时候用到。
  提示:
       hvmc模式时“视图路经数组”是模块的视图数组和主配置视图数组合并后的数组。
       即:$hmvc_system['view_folder']=array_merge($hmvc_system['view_folder'], $system['view_folder']);

升级提示
1.在$system配置里面增加两项:
  $system['hmvc_folder'] = $system['application_folder'] . '/modules';
  $system['hmvc_modules'] = array();

MicroPHP是一个免费、开源、敏捷的MVC模式的PHP开发框架。它易拓展而不失灵活,可以轻松对应大中小型项目。MicroPHP没有大而全的功能,只给你最需要的底层功能,但是给你无限的灵活拓展能力。其它框架都有的基本特性这里就不一一罗列。 
说一下MicroPHP的特性:
1. 整个框架核心就一个文件MicroPHP.php(压缩后的文件MicroPHP.min.php,140KB左右)。 
2. 入口文件index.php也是整个项目的配置文件,一个入口文件就是一个项目的入口,可以自定义多个入口文件达到不同项目共存的目的,项目之间随意共享类库、帮助文件等目录,框架核心文件采用零侵入式编写,整个框架的运行不依赖任何外部变量,初始化的时候只要通过WoniuRouter::setConfig($system)注入配置,然后WoniuRouter::loadClass()执行即可。
3. 独特的插件模式。
4. 项目控制器、模型、视图、类库等各种文件夹完全自定义,用到什么就建立什么文件夹,彻底摆脱一堆无用的一大堆文件夹的困扰。
5. 类库采用懒加载模式,只要按着规定命名规则,然后把你的类库文件扔到类库文件夹,在控制器或者模型中直接new 类库名()即可,系统会自动加载相应的类库文件。 
6. 没有视图就不能指定视图数据?文件可以include共享那么视图为什么不能共享数据呢?在MicroPHP里面你不再有这个困挠,MicroPHP可以在$this->view_vars数组里面存放你的任何想在视图里面使用的全局数据。 特别是网站头部导航用户数据全站每个页面都用到,那么可以自定义个控制器父类,然后和在父类构造方法里面初始化这个用户数据,放到$this->view_vars里面,那么所有的控制器再也不用重复的去取用户数据传给视图。
7. 灵活的session托管,支持的管理类型:mongodb,mysql,memcache,redis.当然也可以用系统默认的管理方式.session托管是可选的,根据项目具体情况择优选用即可。session托管的好处很多,比如:支持分布式、精确控制session过期时间,等等。 
8. 灵活的缓存机制。 
(1).可用的方式缓存驱动有:auto,apc,sqlite,files,memcached,redis,wincache,xcache,memcache。auto自动模式寻找的顺序是 : apc,sqlite,files,memcached,redis,wincache,xcache,memcache。 
(2).缓存配置有个第二驱动机制,比如:当你现在在代码中使用的是memcached, apc等等,然后你的代码转移到了一个新的服务器而且不支持memcached 或 apc这时候怎么办呢?设置第二驱动即可,当你设置的驱动不支持的时候,系统就使用第二驱动。


更多详细信息,请移步官网:http://microphp.us/


本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:MicroPHP 2.2.6 发布 新增 HMVC 模式
加载中

最新评论(10

yybawang
yybawang

支持。

进击的代码
进击的代码

的确比较小,这框架是国产?那要好好支持下啊,$this->view(xxx)有一种CI的既视感

孤月蓝风
孤月蓝风

这文章排版,看着好不清晰啊 ⊙﹏⊙

jesuspan
jesuspan

不错.空了研究下源码.

wildcold
wildcold

引用来自“獨家微笑”的评论

蜗牛

引用来自“lichenlichen”的评论

Test
Tewats
匿名网友
匿名网友

把所有东西放到一起就说简单了?那也是胖子一个哦。

wildcold
wildcold

引用来自“獨家微笑”的评论

蜗牛

Test
狂奔的蜗牛.
狂奔的蜗牛.

引用来自“子弹兄”的评论

貌似很不错的样子!有没有一个demo呢?这样的话'更好入手学习!框架体积很小。有时间看看……

下载的压缩包有完整简单demo的。
墨仝mt
墨仝mt

蜗牛

子弹兄
子弹兄

貌似很不错的样子!有没有一个demo呢?这样的话'更好入手学习!框架体积很小。有时间看看……

返回顶部
顶部