MicroPHP 2.2.1 发布

2013年11月25日
ver 2.2.1:
增加了
1.自动创建项目文件夹功能($system['folder_auto_init'] = TRUE;),可以手动开启或关闭。
2.是否自动建立项目文件夹。当开始一个新项目的时候,以前要一个个手动建立文件夹,
  现在可以在配置里面设置$system['folder_auto_init']=TRUE;设置为TRUE 即可,系统就会自动建立文件夹。
  在建立完文件夹后建议设置为FALSE,这样系统就不用每次都检测文件夹是否存在提高性能。
3.灵活的错误控制。
4.$this->database($config = NULL, $is_return = false, $force_new_conn = false)
  默认情况下一个配置只有一个数据库驱动对象实例,第二次不再重新连接,使用已经存在的实例。
  增加了$force_new_conn参数,该参数为true时每次都使用指定的数据库配置重新连接数据库,使用生成新的数据库实例。
修复了:
1.插件模式下自动加载helper会导致重复加载报错的问题。
2.pathinfo模式路由中有?,路由失效的问题。
  比如:index.php/route.index/xxx/ddd/?flag=microphp
  doIndex($p1=null,$p2=null){
      $flag=$this->input->get('flag');
  }
  可以通过?flag=microphp的形式传递get变量。
  自定义路由模式时注意,这时候“路由字符串”是route.index/xxx/ddd/&flag=microphp,即?会被&替换。
3.插件模式下WoniuLoader::instance(),自动加载无效的问题。
4.如果使用WoniuRouter::setConfig()使配置发生变化,WoniuLoader::instance(),WoniuModel::instance(),WoniuController::instance()
  不会触发变化后配置中的自动加载的问题。
修改了
1.$this->ajax_echo($code, $tip = '', $data = '',$is_exit = true)
  修改为:
  $this->ajax_echo($code, $tip = '', $data = '', $jsonp_callback=null,$is_exit = true)
  以支持jsonp输出。
优化了:
1.WouniuInput->is_ajax(),修改为static;
升级提示
1.在$system中增加如下配置:
/**
 * 是否自动建立项目文件夹
 * 当开始一个新项目的时候,可以在配置里面设置为TRUE ,系统就会自动建立文件夹。
 * 在建立完文件夹后建议设置为FALSE,这样系统就不用每次都检测文件夹是否存在,提高性能。
 */
$system['folder_auto_init']=FALSE;
/**
 * 是否接管误信息
 * true:所有错误信息将由系统格式化输出
 * false:所有错误信息将原样输出
 */
$system['error_manage'] = FALSE;


/**
 * 是否开启错误日志记录
 * true:开启,如果开启了,系统将接管错误信息输出,忽略system['error_manage'],
 *       同时务必设置自己的错误日志记录处理方法
 * false:关闭
 */
$system['log_error'] = FALSE;
/* * --------------------------------错误日志记录处理配置-----------------------
 * 错误日志记录处理方法,可以是一个“函数名称”或是“类的静态方法”用数组方式array('class_name'=>'method_name')。
 * 提示:
 * 1.如果是类,把类按着类库的命名方式命名,然后放到类库目录即可;
 * 2.如果是函数,把函数放到一个helper文件里面,然后在$system['helper_file_autoload']自动加载的helper文件里面填写上这个helper文件即可。
 * 3.留空则不处理。
 * 4.系统会传递给error、exception处理方法5个参数:($errno, $errstr, $errfile, $errline,$strace)
 * 参数说明:
 * $errno:错误级别,就是PHP里面的E_NOTICE之类的静态变量,错误级别和具体含义对应关系如下,键是代码,值是代码含义。
 *         array('0'=>'EXCEPTION',//异常信息
 *               '1' => 'ERROR',//致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。
 *               '2' => 'WARNING', //运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。
 *               '4' => 'PARSE', //编译时语法解析错误。解析错误仅仅由分析器产生。
 *               '8' => 'NOTICE', //运行时通知。表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。
 *               '16' => 'CORE_ERROR', //在PHP初始化启动过程中发生的致命错误。该错误类似 E_ERROR,但是是由PHP引擎核心产生的。
 *               '32' => 'CORE_WARNING',//PHP初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING,但是是由PHP引擎核心产生的。
 *               '64' => 'COMPILE_ERROR', //致命编译时错误。类似E_ERROR, 但是是由Zend脚本引擎产生的。
 *               '128' => 'COMPILE_WARNING', //编译时警告 (非致命错误)。类似 E_WARNING,但是是由Zend脚本引擎产生的。
 *               '256' => 'USER_ERROR', //用户产生的错误信息。类似 E_ERROR, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。
 *               '512' => 'USER_WARNING', //用户产生的警告信息。类似 E_WARNING, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。
 *               '1024' => 'USER_NOTICE',//用户产生的通知信息。类似 E_NOTICE, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。
 *               '2048' => 'STRICT', //启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。
 *               '4096' => 'RECOVERABLE_ERROR'//可被捕捉的致命错误。 它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。 如果该错误没有被用户自定义句柄捕获 (参见 set_error_handler()),将成为一个 E_ERROR 从而脚本会终止运行。
 *               '8192' => 'DEPRECATED', //(php5.3)运行时通知。启用后将会对在未来版本中可能无法正常工作的代码给出警告。
 *               '16384' => 'USER_DEPRECATED', //(php5.3)用户产少的警告信息。 类似 E_DEPRECATED, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。
 *         );
 *         可以通过判断错误级别,然后有针对性的处理。一般我们需要处理的就是致命错误(0,1,4)和一般错误(2,8,2048,8192).
 * $errstr:具体的错误信息
 * $errfile:出错的文件完整路径
 * $errline:出错的行号
 * $strace: 调用堆栈信息
 * 系统会传递给db_error处理方法2个参数:($errmsg,$strace)
 * 参数说明:
 * $errmsg:具体的数据库错误信息
 * $strace:调用堆栈信息
 */
$system['log_error_handle'] = array(
    'error' => '', //array('ErrorHandle' => 'error_handle'),
    'exception' => '', //array('ErrorHandle' => 'exception_handle'),
    'db_error' => '', //array('ErrorHandle' => 'db_error_handle')

);

      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/


展开阅读全文
6 收藏
分享
加载中
最新评论 (3)
支持~希望越来越好...
2013-11-26 19:59
0
回复
举报
支持开源
2013-11-26 11:07
0
回复
举报
支持你,加油蜗牛。
2013-11-26 07:39
0
回复
举报
更多评论
3 评论
6 收藏
分享
返回顶部
顶部