实用软件资讯

蓝房子0.0.3 发布,基于Symfony框架的php开源社区系统

 techsir注:这是一套开源社区系统,默认主题模仿v2ex,框架symfony ,目前postgresql数据库相对于中小企业用的不是特别多,我们认为支持mysql,更容易建立开源社区的氛围和用户基数。同时,建议官方注明是否是symfony2 。该项目的主要研发成员都在山东济南。

QQ图片20141201212519.jpg

 蓝房子系统简介

  一个轻量级的,关注于移动互联网的,易于集成的新式社区程序。

  基于Symfony框架+PHP/PostgreSQL开发

  此版本主要是针对技术架构做的重构,重构后的架构扩展性更强。

  改动如下:

  1,抽取出常用的CRUD操作,使用公用父类(ResourceController,EntityRepository)来完成通用的CRUD操作,

  2,页面分页,页面排序(鼠标点击某列进行排序)统一使用父类进行完成

  3,架构中的各层均使用容器注入服务进行调用(controller,repository,form)

  4,前端页面映射由注释统一改成yml形式进行匹配URL

  5,注入监听接口,包括:每个实体的数据库操作,每次页面请求访问

  6,项目分为两个Bundle,CoreBundle和WebBundle,使业务操作与Web分开

  蓝房子访问地址:bluehouseapp.com/

 

  蓝房子V0.0.3架构重构总结:

 

  1,定义基类ResourceController,来完成通用的CRUD请求动作,

  包括:实体的CRUD,捕获页面传入的分页信息、查询条件过滤信息、实体排序信息,

  均能自动进行处理。

  自定义的所有的Controller都集成于此类,只关注业务逻辑处理即可。

  2,架构中的各层均使用容器注入服务进行调用,

  需要对model相关的服务在Configuration中进行自定义,

  针对每个模型可以进行的配置:页面模板目录,模型定义类,Controller,Repository,Form,

  这些服务定义后在处理请求时会自动被基类repository调用,无需进行手动处理。

  3,定义全局配置参数,包括分页、排序、过滤,

  这些信息只是全局信息,如果想进行为某个实体进行自定义,可以在实体的routing文件中进行再定义,

  会自动覆盖全局定义的参数。

  4,前端页面映射由注释统一改成yml形式进行匹配URL,定义匹配url规则时可以加上其它参数,会被自动处理。

  如果一个controller中只有统一的CRUD操作,那么可以不创建Ctroller,使用基类ResourceController即可。

  5,注入监听接口,包括:每个实体的数据库操作,每次页面请求访问。

  可以很方便的为每个实体插入自定义的监听事件。

  6,项目分为两个Bundle,CoreBundle和WebBundle,使业务操作与Web分开,

  CoreBundle重点处理逻辑操作,WebBundle重点处理web请求相关的,包括:定义routing,web静态资源等。

希望看到您的想法,请您发表评论x