基础

admin 发表于 2018-05-14 16:20 下一篇

首页 > 技术文档 > 模块

基础
发表于 2018-05-14 16:20

开始

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。
  • 登录后台 → 模块 → 未安装模块,找到当前新建的模块,安装(或测试卸载)

  • 写模块的逻辑业务代码。
  • 运行并调试
以上信息是否对您有帮助?
0.3194s