从MVC角度分析LUCI

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

 

MVC模式最早由Trygve Reenskaug在1978年提出[1] ,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:

  • (控制器Controller)- 负责转发请求,对请求进行处理。
  • (视图View) - 界面设计人员进行图形界面设计。
  • (模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)

 

 


(以上来处维基百科)


1.M: model

Model下面有一个cbi目录,正如框架中说到的,CBI就是用来一个产生、解析、验证一个页面文件,并且读写UCI配置文件的。

Model/cbi下的lua文件是以/libs/web/luasrc/view/cbi下的htm文件为模板来形成htm文件的。比如map方法就对应map.htm

Mode/cbilibs/web/luasrc/view/cbi下的lua脚本也主要由cbi.lua来解析。


2.V: view

就是htm文件,后缀只能是htm


3.C: controller

3.1 lua 文件说明

1)index.lua 这个文件定义了node ,最外面的节点,最上层菜单的显示等等。

2)其他的 lua 文件里,定义了其他菜单的显示和html 以及业务处理路径。每个文件对应一个菜单项。


例如system.lua

1)module是对应文件的

2)function index 定义了菜单,

比如这一句entry({"mini", "system", "reboot"}, call("action_reboot"), i18n("reboot"), 100)

1 项为菜单入口:{"mini", "system", "reboot"}中,mini 是最上层的菜单,即为用户项; system 为一个具体的菜单;reboot 为这个菜单的子菜单;

第2项为菜单对应的页面,可以是lua 的源代码文件,也可以是 html 页面。alias cbi form call 等定义了此菜单相应的处理方式。

  form  cbi 对应到 model/cbi 相应的目录下面,那里面是对应的定制好的 html  lua 业务处理。

 alias是等同于别的链接

  call 调用了相应的 action_function  

  template直接链接到view 相应目录下面的 htm 页面

第3项为i18n 显示(即语言替换)

第4项为现实的顺序,这个数字越小,显示越靠前,靠上。


4.用户管理

luci 是一个单用户框架,公用的模块放置在 */luci/controller/ 下面,各个用户的模块放置在 */luci/controller/ 下面对应的文件夹里面,比如 admin 登录,最终的页面只显示 /luci/controller/admin 下面的菜单。这样既有效的管理了不同管理员的权限。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值