MicroPHP 2.2.6 发布 新增 HMVC 模式 - 开源中国社区
MicroPHP 2.2.6 发布 新增 HMVC 模式
狂奔的蜗牛. 2014年04月24日

MicroPHP 2.2.6 发布 新增 HMVC 模式

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

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)
最新评论
0

支持。

0

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

0

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

0

不错.空了研究下源码.

0

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

蜗牛

引用来自“lichenlichen”的评论

Test
Tewats
0

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

0

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

蜗牛

Test
0

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

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

下载的压缩包有完整简单demo的。
0

蜗牛

0

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

顶部