插件模式
  1. 概念

      插件模式是相对Web模式而言的,通常Web模式我们都是从框架入口文件开始访问运行我们的项目,
    顺序是路由器路由到具体的控制器,然后加载执行控制器的方法。
      插件模式就是可以把框架嵌入到任何现有的程序代码到中,然后按着Soter框架的各种特性写代码,
    插件模式和正常模式唯一不同的就是插件模式下Soter的路由功能不再使用,其它特性完全保留。
      插件模式下路由器不在起作用,那么加载执行控制器的方法由我们自己的业务逻辑决定。
      Soter支持插件模式运行,只要我们在入口文件最上面定义一个宏SOTER_RUN_MODE_PLUGIN为true即可,
    即:define('SOTER_RUN_MODE_PLUGIN', TRUE);
  2. 手动加载

    插件模式下路由器不在起作用,我们可以通过Sr::factory()方法加载各种资源,比如控制器方法。
    下面对它进行介绍:

    1.首先我们看它的参数

    						Sr::factory($className, $hmvcModuleName = null)	
    					
    我们看到有两个参数:
    $className:    可以是完整的控制器类名,模型类名,类库类名
    $hmvcModuleName:  hmvc模块名称,是入口文件配置里面的数组的键名,插件模式下才会用到这个参数
    该方法而且支持传递参数给构造方法,详细内容可以看下面2.4的介绍.

    2.加载示例

    2.1.比如加载控制器:application/classes/Controller/Welcome.php
    						$welcome=Sr::factory('Controller_Welcome');
    						//手动调用do_index方法,这里应该是按着我们具体的业务逻辑手动调用我们需要调用的方法。
    						$welcome->do_index();		
    					
    2.2.比如加载hmvc模块控制器:application/hmvc/demo/classes/Controller/Welcome.php
    而且入口文件里面注册了hvmc模块demo,Demo=>demo
    						$welcome=Sr::factory('Controller_Welcome','Demo');
    						$welcome->do_index();
    					
    2.3.比如加载模型:application/classes/Model/User.php
    						$userModel=Sr::factory('Model_User');
    						//手动调用do_index方法,这里应该是按着我们具体的业务逻辑手动调用我们需要调用的方法。
    						$userModel->do_something();		
    					
    2.4.超级工厂方法Sr::factory($className, $hmvcModuleName = null)
    第三个参数开始的参数Soter会按着参数顺序传递给你要实例化的类的构造方法.
    比如:执行了Sr::factory('\Bean\User', null,669,'jack')
    同时User类如下:
    					<?php
    					namespace Bean;
    					class User{
    						private $id=0,$name='';
    						public function __construct($id,$name){
    							this.id=$id;
    							this.name=$name;
    						}
    					}	
    					
    那么669和jack就会作为$id和$name传递给User类的构造方法,如果要传递更多参数,
    在调用Sr::factory('\Bean\User', null,669,'jack')的时候,后面依次写上即可.