开始
IBOS2 完全使用模块化设计与面向对象开发,目前 IBOS 团队开发了包括八个系统内置模块在内的二十个模块。除内置模块内,其他模块皆可独立卸载安装。
每一个模块即视为一个功能点或集合,由于采用独立的目录结构设计,因此一个需求简单如投票,复杂如工作流,皆可在一个模块内实现。换言之,你可以通过模块扩展来实现任何你想要的功能。
以下,让我们来开始了解IBOS2的模块吧。
目录结构
模块的目录结构如下: (总目录结构详见目录结构)
例如模块名为workflow
workflow 模块目录 ├─WorkflowModule.php 入口文件 ├─controllers 控制器目录 (可选) ├─core 核心类目录 (可选) ├─components 组件目录 (可选) ├─extensions 扩展目录 (可选) ├─install 安装目录 ├─uninstall 卸载目录 (可选:如果该模块作为核心模块,不允许卸载的话) ├─language 语言包 (可选) ├─model 模型目录 (可选:如果有模块的专属模型) ├─static 静态资源文件目录 (可选:如果有视图目录) ├─utils 工具类目录 (可选) ├─views 视图目录 (可选:如果有controllers目录) ├─widgets 挂件目录 (可选) └─cron 定时任务目录(可选)
是不是感觉很复杂?别担心,这是极端情况下的目录结构(即功能异常复杂时),为了适应更强大的功能扩展,分这么多目录是有必要的。但一般情况下我们用不了那么多。
请记住,
一个最简单的模块的配置只需要 入口文件 与 安装目录 即可! 其他的目录甚至目录的命名,都是你可以在模块配置文件里配置的!
访问模块与URL
IBOS2里的URL地址一般看起来是这样的:http://wwww.xxx.com/?r=calendar/schedule/index
r即为route,意为路由。我们来看 calendar/schedule/index 这一段:
- calendar 为要访问的模块,可以在 system/modules/calendar 找到该模块。
- schedule 为该模块下的schedule控制器,对应的文件为 system/modules/calendar/controllers/ScheduleController.php
- index 即为该控制器的index方法
模块的建立与安装
开发一个模块的标准流程是如下步骤(以calendar为例):
- 细化需求,规划功能,设计先行(如果有界面或交互的话)。开发者最好对设计模式有一定的了解。
- 创建好该模块的数据表 (无则跳过)
- 精读模块的配置文件!IBOS模块的强大与灵活之处便在于此,如果你不了解配置文件里所代表的意义的话,你是不会建立起一个模块的
- 新建模块文件夹并以英文名称命名 (system/modules/calendar)
-
在calendar文件夹内创建模块入口文件{模块名}Module.php,并将之继承到ICModule。代码如下:
class CalendarModule extends ICModule { }
-
新建目录install,在该目录下新建模块配置文件 config.php ,根据配置文件里的说明与自身需要,写下你的模块配置
- 如果你需要在安装时执行其他操作。建立extention.php并写下你的逻辑。
- 如果有数据表,将模块所属的数据表的SQL生成到model.sql。
-
登录后台 → 模块 → 未安装模块,找到当前新建的模块,安装(或测试卸载)
- 写模块的逻辑业务代码。
- 运行并调试