请选择 进入手机版 | 继续访问电脑版

Yii2|Yii爱好者中文社区门户

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: yii 控制器 数组
查看: 4973|回复: 3

Yii2.0中文开发向导——模块、应用程序(Module,Application)

[复制链接]

175

主题

860

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
44589
发表于 2014-6-17 14:03:18 | 显示全部楼层 |阅读模式
模块(Module )

模块是一个功能独立的逻辑单元,每一个模块都可以包含有多个子模块,但每个模块只能有一个对应的父模块(如果有的话)。它的定义在yii\base\Module


应用程序(Application)

Yii2中的应用程序有两种:web应用程序(yii\web\Application)控制台应用程序(yii\console\Application)。他们都继承于yii\base\Application。而yii\base\Application又是从模块yii\base\Module 继承来的。

所以web应用程序(yii\web\Application)和控制台应用程序(yii\console\Application)也都是模块。

但他们和普通的模块又不一样,这两个是可直接运行的特殊的模块,是所有其它自定义模块的根级别的父模块。

我们可以用yii提供的Gii来生成我们需要的模块

  • Module Class输入完整的命名空间和模块类名称
  • Module ID 是这个模块的唯一标识,不能和其它模块重复。

点击generator后生成

这个用Gii添加一个admin模块的界面。

我们用相同的方法再添加一个bbs模块和一个blog模块。最后生成的项目目录结构如下。

其中左侧的是配置文件,把这三个模块作为base application的子模块。
右侧为和modules目录下面生成的三个模块。每个模块都是独立的功能单元,可包含controller、views等等。


模块ID及访问

在yii中所有的module、controller、action都有id,唯独application是一个特例,它的ID为空,也就是说可运行的根结点的应用程序的ID为空。

我们要访问一个模块的话,路由格式为?r=module id/controller id/action id 其中模块的Id就为modules中对应的文件夹
因为应用程序(也就是根模块)的ID为空,所以访问应用程序的时候不需要加模块InD,它的路由格式为?r=controller id/action id


应用程序(Application)也是一种模块(Module),是存在于入口脚本中直接运行的模块。是当前应用程序中其它模块的父模块。模块(Module)中的所有的操作及属性都可应用于应用程序


原文链接:http://www.yiifans.com/forum.php?mod=viewthread&tid=24&fromuid=2


模块和应用的关系

一个app里面可以有多个module,各个Module又可以有自己的子module

app可以独立运行,但module只能存在于app里面 通过app来访问执行


Yii2.0中文开发向导——目录

(出处: Yii2|Yii爱好者中文社区门户)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

175

主题

860

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
44589
 楼主| 发表于 2014-7-16 22:57:12 | 显示全部楼层
回复

使用道具 举报

0

主题

2

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2015-1-4 22:11:02 | 显示全部楼层
非常不错,正在学习中
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|Yii2|Yii爱好者中文社区门户  

GMT+8, 2017-1-23 04:28 , Processed in 0.600430 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表