forked from pi-engine/pi
-
Notifications
You must be signed in to change notification settings - Fork 2
Dev.Front Module Concept and Compose.zh_cn
lavenderli edited this page Aug 8, 2013
·
4 revisions
Pi Engine是由许多模块组成的,包括一些必须模块和可选模块,比如system模块就是系统必须的。模块的概念相当于App Store中的一个具体的应用。使用模块化编程思想方便了代码维护,也提高了开发效率。
Pi Engine的模块对模块化编程思想做了拓展,形成了自己的特点:模块聚合和模块多实例。
- 模块聚合:在Pi系统中可以安装多个模块,比如article, user, tag模块等等,来满足一个具体网站的运营需求。
- 模块多实例:Pi系统允许某些特殊模块可以重复安装,安装后的模块共用一套代码,但其分别在数据库里维护一套自己的数据。
如果一个模块的配置文件中clonable => true
,表明这个模块可以安装多次。
模块可以在后台 Operation->system->modules 更新,卸载,安装。
模块主要由三部分组成:Controller,Action,Section,在这里做简单介绍。
-
Controller
指MVC中的C,当客户端发起一个请求的时候,Controller决定了由哪个文件去响应这个请求。 -
Action
Action是伴随着Controller的,它是某个Controller class的一个具体方法,最终客户端的请求是Action去响应的。一个Controller中可能包含了一个或多个Action。 -
Section
- front:前台是面向普通用户的部分,这部分所有人都可以访问到
- admin:后台是面向管理员的,需要登录后才可以看到,需要有一定的权限
- feed:操作RSS,完成网站的RSS订阅
- block:模块的区块,和模块的主体内容一起组成一个页面,一个模块的区块可以被其他模块重用。