techsir 登陆 |注册|TS首页
  首页 快活林 猿氏悟语

开源lavaral论坛Flarum 界面设计预览

By: 冰客 发表于 2015-1-3 20:23:35 · 76658次点击   回复:1   
8afe45b8-9039-11e4-8b0b-e708961d7fbf.png

88e91e60-9039-11e4-8477-7be7c74204e7.png

80219474-9039-11e4-9639-a81b62c46bc3.png

76658次点击
1个回复  |  直到 2015-1-3 20:23:35
   
  Reply   
冰客      2015-1-3 20:23:35
Flarum 使用三层体系结构。
1、核心层 - core 负责管理数据、事件、实体、命令等。
2、中间层 - API 使用 Web API 来操作 Flarum。
3、最外层 - Web App 使用 Ember.js 展示数据。
这样的分层架构就有了很大的灵活性和扩展性。比如最外层完全可以由一个其它 Web App 取代,可以使用 Angular.js、CodeIgniter、Node.js,甚至可以使用一个移动App。通过分层架构,也保证了系统的可测试性和稳定性。
1. Core
Flarum 核心层使用 Laravel 框架,主要包括:
Entities 实体,主题(Discussion)、帖子(Post)、用户(User)等都是实体,基于 Laravel 的 Eloquent ORM。实体的权限使用 Permissible ,Permissible 内置了验证规则。
Repositories 用来查找、保存、删除实体,Repositories 提供了一个数据库抽象层。然而目前的开发期间,严格遵守这一约定有时会引起其他的麻烦(尤其是考虑如何扩展实体和 Repo),因此我们使用 Reso 时,需要编写更多的测试代码以保证代码质量。
Commands 和 Domain Events 所有的实体都由命令和事件连接。监听器( Listener)用来更新元数据(帖子数量、最后发贴时间等)、排版帖子内容、发送邮件等。采取这种命令模式 也使得系统很容易扩展。
2. API
Flarum 中处理 API 的类被称为 Actions,这些 Actions 本质上都是微型控制器。这使得编写 Web API 的处理代码变得简单。
Flarum API 的结构按照 JSON-API 规范 设计。这种规范使用了一个软件包 进行了封装。为每个实体定义了不同的序列化格式。
3. Web
Flarum 的 Web 端使用了 Ember.js 框架,通过 ember-cli 将 LESS 和 ES6 代码编译为 CSS 和 JavaScript 文件。
Web 层的主要职责是提供一个页面,包括 HTML、CSS、JavaScript,在默认的 Flarum 中使用了 Ember app。我们可以通过添加自己的 javascript 和 css 来扩展 Web 层的功能,甚至可以完全重新 Web 层代码。
via  http://discuss.flarum.org.cn/17-flarum-architecture

Flarum 技术架构 Architecture

添加一条新回复
您需要登录后才可以回帖 登录 | 成为会员 新浪微博登陆

标签云|手机版|科技先生 ( 京ICP备07036130号 Powered by Discuz! X )

GMT+8, 2024-4-26 01:49