Git --NB Framework 中文教程
目录 ▾ 模块

最后更新于:2018-10-30 17:03
52次阅读0条评论

模块

NB里的模块,是对一组相关功能的整合,他是的应用目录的补充和分担,也是组件化开发的基础。
模块的权重应是小于应用目录(应用目录相当于一个公共的默认模块)的。

模块的目录结构

/home/www/demo/                      项目根目录
├─application                        应用目录
├─module                             模块根目录
│  ├─bind                            模块(bind)目录
│  │  ├─controller                   模块控制器目录
│  │  ├─view                         模块视图目录
│  │  └─config.inc.php               模块配置文件
│  ├─member                          模块(member)目录
│  │  ├─controller                   模块控制器目录
│  │  ├─view                         模块视图目录
│  │  └─config.inc.php               模块配置文件
├─public               
│  ├─.htaccess                       
│  └─index.php                       入口文件
├─tmp                                缓存目录
├─nb                                 框架系统目录
├─config.inc.php                     框架配置目录
└─server                             服务器运行命令

模块的目录结构和应用目录差不多,只是多了一个config.inc.php配置文件,且此文件不是必须文件。

模块控制器命名空间的书写规则

和应用目录下控制器的规则差不多,只是前面都需要添加module\模块名,如下

/home/www/demo/                      项目根目录
├─application                        应用目录
├─module                             模块根目录
│  ├─member                          模块(member)目录
│  │  ├─controller                   模块控制器目录
│  │  │  └─Test.php                  控制器文件
│  │  ├─view                         模块视图目录
│  │  └─config.inc.php               模块配置文件

实现如下:

namespace module\member\controller;

class Test {

     //访问地址:http://demo.ol.cx/member/test/index
    public function index(){
        ex('Hello NB');
    }
}

添加一个其它的控制器目录,如下:

/home/www/demo/                      项目根目录
├─application                        应用目录
├─module                             模块根目录
│  ├─member                          模块(member)目录
│  │  ├─api                          模块控制器目录
│  │  │  └─User.php                  控制器文件
│  │  ├─controller                   模块控制器目录
│  │  │  └─Test.php                  控制器文件
│  │  ├─view                         模块视图目录
│  │  └─config.inc.php               模块配置文件

实现如下:

namespace module\member\controller\api;

class Test {

     //访问地址:http://demo.ol.cx/member/api/user/index
    public function index(){
        ex('Hello NB');
    }
}

注意controller要在自定义目录api名称前面。
把api目录放在controller目录下,命名空间也是这样的。

如果你访问注释的地址提示不存在,请检查是否已经注册了模块

注册模块

我们编写了模块,但是如果不注册的话,我们并不能访问它。

注册模块需要在框架配置里添加下面设置:

//注册模块
public $module_register = [
    'member','bind'
];

给模块绑定独立的域名

上面我们访问一个模块总是需要这样:

http://demo.ol.cx/模块名[/控制器文件夹]/控制器/动作

如果我们给模块绑定一个域名就可以省略模块名了:

http://demo.ol.cx[/控制器文件夹]/控制器/动作

模块绑定域名,需要在框架配置里进行设置:

//模块域名绑定设置
public $module_bind = [
    'bind.ol.cx'   => 'bind',
    'member.ol.cx' => 'member',
];

设置很简单,现在我们就可以访问http://member.ol.cx/api/user/index试试,
甚至访问默认控制器目录下的控制器,还可以省略index,如http://member.ol.cx/test这样。

如果模块已经绑定了域名,那么默认就已经注册了

模块的独立设置

TODO

上一篇:响应输出
下一篇:重定向

相关评论

您需要登录后才可以发表评论