Herosphp 3.0.1 发布,轻量级php开源框架 - 开源中国社区
Herosphp 3.0.1 发布,轻量级php开源框架
阳建 2017年09月07日

Herosphp 3.0.1 发布,轻量级php开源框架

阳建 阳建 发布于2017年09月07日 收藏 23

有免费的MySQL,为什么还要买? >>>  

HerosPHP 是一个免费开源的,快速、优雅的面向对象的 轻量级PHP MVC开发框架。使用她你能够快速的搭建简洁,易于扩展的web应用,初始版本始于2013年。2016年提供了完整的开发文档。目前最新版本是v3.0.1。

Herosphp有 如下特点:

    1. 部署简单,高开发效率并且高性能

    2. 框架简单实用,傻瓜式开发,学习门槛低

    3. 在保持约定大于配置的原则下又保持着很好的扩展性

    4. 代码风格简洁漂亮,程序精简高效,但是注释详细,适合新手学习.

功能:

  • 完整的MVC支持

  • 强大的数据库操作功能

  • 完善的AOP支持,可以在应用和模块分别设置监听器,轻松完成切面编程

  • 提供的大量的字符串工具,网络工具,二维码工具,文件处理,图片上传,缓存工具,同步锁等,可以很方便的实现生成分布式唯一ID, RSA加密, 二维码等。

  • 内置代码生成工具,可以比较方便的生成模型(M),服务(S)和控制器(C),一条命名就可以完成创建数据库到生成控制器代码。

  • composer 和 psr-4标准支持

  • .....

本次更新内容:

  1. 修复了 MysqlQueryBuilder::addWhere 方法的bug, 当第三个参数不传入时查询报错。

  2. 修复 JsonResult::output 输出日志乱码的bug。

  3. 更新了 StringUtils类的生成分布式唯一ID的算法,把32位改成生成18位的16进制数

  4. 重要: 给监听器(Listener)新增了skinUrl()接口,用来过滤不需要监听的请求 URI

使用方法:在 ModuleListener(模块监听器) 或者 DefaultWebappListener(全局监听器)中的 beforeRequestInit() 调用 skipUrl方法就行了。url地址支持通配符,使用 “**”

class DefaultWebappListener extends WebApplicationListenerMatcher implements IWebAplicationListener {

     /**
      * 请求初始化之前
      * @return mixed
      */
     public function beforeRequestInit()
     {
         //设置跳过监听的uri, 比如登录页面,注册页面等
         $this->skipUrl("/user/**"); //跳过用户模块下所有请求
         $this->skipUrl("/admin/login/**"); //跳过登录控制器所有请求
         $this->skipUrl("/admin/scode/index"); //跳过验证码请求

         // TODO: Implement beforeRequestInit() method.
     }

     /**
      * action 方法调用之前
      * @return mixed
      */
     public function beforeActionInvoke(HttpRequest $request)
     {
        echo "捕获请求";
     }

     /**
      * 响应发送之前
      * @return mixed
      */
     public function beforeSendResponse(HttpRequest $request, $actionInstance)
     {
         $webApp = WebApplication::getInstance();
         //注册当前app的配置信息
         $actionInstance->assign('appConfigs', $webApp->getConfigs());
         $actionInstance->assign('params', $webApp->getHttpRequest()->getParameters());
     }

     /**
      * 响应发送之后
      * @return mixed
      */
     public function afterSendResponse($actionInstance)
     {
         // TODO: Implement afterSendResponse() method.
     }

}
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Herosphp 3.0.1 发布,轻量级php开源框架
分享
评论(10)
精彩评论
1
你这个框架有一个不足之处,关于pdo查询数量部分
public function count($sql)
{
$result = $this->execute($sql);
$res = $result->fetch(PDO::FETCH_ASSOC);
return $res['total'];
}
你这么写意味着使用者查询数量必须用select count(*) as total,不然会报错,再者你这样写也并不高明,
推荐你这么写
$num = $this->link->query("select count(*) from table")->fetchColumn()
最新评论
0

引用来自“shitalpig”的评论

麻痹搞的我都不知道虚拟主机上该有什么框架了

引用来自“blackfox”的评论

框架的最终目的是解决自己的问题,只要觉得能够很方便的解决自己的问题就ok了,没必要换框架的,不过可以借鉴别人的比较的好的设计模式去完善自己的目前使用的框架。:relaxed:

引用来自“shitalpig”的评论

那我thinkphp就没必要换了
嗯,这个你觉得够用就没必要换了。
0

引用来自“shitalpig”的评论

麻痹搞的我都不知道虚拟主机上该有什么框架了

引用来自“blackfox”的评论

框架的最终目的是解决自己的问题,只要觉得能够很方便的解决自己的问题就ok了,没必要换框架的,不过可以借鉴别人的比较的好的设计模式去完善自己的目前使用的框架。:relaxed:
那我thinkphp就没必要换了
0

引用来自“shitalpig”的评论

麻痹搞的我都不知道虚拟主机上该有什么框架了
框架的最终目的是解决自己的问题,只要觉得能够很方便的解决自己的问题就ok了,没必要换框架的,不过可以借鉴别人的比较的好的设计模式去完善自己的目前使用的框架。:relaxed:
0
麻痹搞的我都不知道虚拟主机上该有什么框架了
0
不错,算上这个,PHP得有1W个框架了。:blush:
0

引用来自“小时了了_大未必佳”的评论

你这个框架有一个不足之处,关于pdo查询数量部分
public function count($sql)
{
$result = $this->execute($sql);
$res = $result->fetch(PDO::FETCH_ASSOC);
return $res['total'];
}
你这么写意味着使用者查询数量必须用select count(*) as total,不然会报错,再者你这样写也并不高明,
推荐你这么写
$num = $this->link->query("select count(*) from table")->fetchColumn()
一个比一个冲动啊.. 出了狼窝又踩入虎门..
直接换成PDO::FETCH_NUM 不是更好?
return $res0+0;
0

引用来自“小时了了_大未必佳”的评论

你这个框架有一个不足之处,关于pdo查询数量部分
public function count($sql)
{
$result = $this->execute($sql);
$res = $result->fetch(PDO::FETCH_ASSOC);
return $res['total'];
}
你这么写意味着使用者查询数量必须用select count(*) as total,不然会报错,再者你这样写也并不高明,
推荐你这么写
$num = $this->link->query("select count(*) from table")->fetchColumn()
感谢反馈,确实这里我写死了,因为正常情况下都不会调用DB类的count方法,这个方法不提供给框架外面调用的,一般都是调用Model::count($condition)方法,不会需要传入sql语句的,查询也是一样的,只需传入条件就可以了,所以不会报错的。不过你的推荐的写法确实更优雅一些。:+1:
1
你这个框架有一个不足之处,关于pdo查询数量部分
public function count($sql)
{
$result = $this->execute($sql);
$res = $result->fetch(PDO::FETCH_ASSOC);
return $res['total'];
}
你这么写意味着使用者查询数量必须用select count(*) as total,不然会报错,再者你这样写也并不高明,
推荐你这么写
$num = $this->link->query("select count(*) from table")->fetchColumn()
0
php 都上 aop 了:+1:
0
赞一个��
顶部