一个相对来说大的项目。如果按照yii生成的webapp进行开发。所有的controller放到controllers文件夹下,所有的model放到models文件夹下面,如果你有n多个controller和n多的model,是不是就显得这种组织结构过于繁琐,冗余了。还好YII支持Modules结构。你的项目可以分成n多的Module,然后每一个Module有自己的controllers和models。这样的组织结构,无论是开发,管理都方便简洁多了。看看YII的Modules的是组织方式和使用方法。
1.用yiic创建module
在 《
YII Framework学习教程-用YIIC快速创建YII应用之三-2011-11-11
》,已经讲了如何用yiic给制定的应用创建一个模块。
在shell模式下,输入 module 模块名称 。
2.module的目录结构
- │ ├── models
- │ │ ├── ContactForm.php
- │ │ ├── LoginForm.php
- │ │ └── User.php................................................................
- │ ├── modules模块的存放目录
- │ │ └── testmod一个模块,模块的名字对应是目录的名字,唯一。也是路由中的moduleid
- │ │ ├── components模块用到的组件
- │ │ ├── controllers包含控制器
- │ │ │ └── DefaultController.php默认控制器
- │ │ ├── messages国际化
- │ │ ├── models模型类文件
- │ │ ├── TestmodModule.php模块的类文件
- │ │ └── views试图文件
- │ │ ├── default默认视图
- │ │ │ ├── index.php视图文件
- │ │ └── layouts包含布局文件
- │ ├── runtime....................................................................
- │ │ └── application.log
- │ ├── tests
- │ │ ├── bootstrap.php
- │ │ ├── fixtures
- │ │ │ └── tbl_user.php
基本的目录结构如上,当然你可以在自己加入一些自定义的东西。
3.模块的类文件(例如:TestmodModule.php)
- <?php
- class TestmodModule extends CWebModule
- {
- public function init()
- {
- // this method is called when the module is being created
- // you may place code here to customize the module or the application
- // import the module-level models and components
- $this->setImport(array(
- 'testmod.models.*',
- 'testmod.components.*',
- ));
- }
- public function beforeControllerAction($controller, $action)
- {
- if(parent::beforeControllerAction($controller, $action))
- {
- // this method is called before any module controller action is performed
- // you may place customized code here
- return true;
- }
- else
- return false;
- }
- }
模块必须继承CWebModule(->CModule->CComponent)。类名是模块名首字母大写,后缀是Module。
init()
初始化模块,通过代码可以看到,可以用来导入其他模块的组件。主要完成模块的初始工作
beforeControllerAction()
afterControllerAction()
用于在模块内的Controller,Action执行之前和执行之后进行相关的操作
4.模块的配置,使用方法
(1).配置文件/yii_dev/testwebap/protected/config/main.php
'modules'=>array('testmod',),
配置文件中也可以及添加对模块中属性初始化的参数例如:
'modules'=>array('testmod'=>array('param'=>'param1'),
- <?php
- class TestmodModule extends CWebModule
- {
- public $param;
对应的访问方式是:
Yii::app()->controller->module->param;
(2).YII中的模块是非常灵活的,一个模块可以包含子模块。理论上,模块可以是无限嵌套。
5.模块的路由
在yii的路由章节已经说明了模块的路由格式。这里不再累述。
http://blog.csdn.net/mengxiangbaidu/article/details/7041296
相关推荐
这个版本是“yii-advanced-app-2.0.10.tgz”,它是一个压缩包,包含了 Yii 2 框架的高级应用模板,版本号为 2.0.10。这个版本可能包含了一些修复和改进,以提供更稳定和高效的开发环境。 Yii 2 是一个基于组件的高...
yii2-device-detect, 移动检测库的Yii2扩展 yii2-device-detect基于Yii2扩展的移动检测库。使用它只需要在 composer.json file: 中使用这个扩展"alexandernst/yii2-device-detect":"0.0.12",
"yii-advanced-app-2.0.4" 是 Yii 2.0 框架的一个高级应用模板,适用于构建复杂的多层应用程序。这个版本是 2.0.4,意味着它包含了该框架在 2.0 主线版本中的第四次更新,通常会包含修复的错误、改进的性能以及可能...
yiren-p8Yii-ve2467575-x64.apk
这个"yii2-file-upload-master.zip"压缩包包含了一个针对Yii2.0框架的图片上传扩展,特别设计来支持异步加载缩略图功能。这种功能在现代网页应用中非常常见,特别是在用户需要上传图像并即时查看预览效果时。 该...
而layui是一款优秀的前端UI框架,它轻量级且模块化,适用于后台管理界面的设计,提供了丰富的组件和样式,让开发者可以快速构建出美观且响应式的页面。 本项目"基于Yii2+layui的后台框架模板,实现了完善的RBAC权限...
"yii-basic-app-2.0.5.tgz" 是一个压缩包,其中包含了Yii2框架的基础版(Basic App)的源代码,版本号为2.0.5。这个版本修复了一个重要的安全问题,具体涉及到`yii\web\ViewAction`类。 `yii\web\ViewAction`是Yii2...
### Yii快速入门教程知识点 #### 一、基本概念 **1. 入口文件** - **功能**: 入口文件是整个Yii应用的第一个脚本,它负责加载Yii框架以及初始化应用。 - **内容**: 通常包含如下代码: ```php $yii = dirname...
总的来说,“Laravel开发-yii2-artisan-bridge”项目是PHP框架跨平台协作的一个创新实践,它让开发者有机会将两个优秀框架的优点结合在一起,以应对更复杂、更个性化的开发需求。对于熟悉Laravel Artisan但又在使用...
Yii 2 Advanced Application 是一个基于 Yii 2 框架的高级项目模板,适用于构建复杂的、多应用的 Web 应用程序。版本号 2.0.36 表示这是该框架的一个稳定版本,提供了许多改进和修复。这个 `.tgz` 文件是该模板的...
yii-advanced-app-2.0.8.tgz 由于国外服务器下载太慢,共享下,用composer安装没有vendor核心文件夹
Yii Framework 是一个高效且强大的PHP框架,用于构建大型Web应用程序。..."yii-basic-app-2.0.0.tgz"压缩包是学习和快速启动Yii 2.0项目的理想起点,开发者可以通过这个基础模板深入了解和掌握Yii框架的各个方面。
yii2-plugins-system, 带有事件管理器和https的Yii2插件系统模块 Yii2-plugins-system入门 Yii2-plugins-system是设计用来工作的。 这意味着安装需要最少的步骤。 你应该只需要一个配置步骤,你就可以在Yii2网站上...
Yii1-UEditor-Ext-1.1 是一个专为Yii框架1.x版本设计的扩展插件,它将流行的富文本编辑器——百度UEditor整合到了Yii应用中。这个组件的目的是提供一个易于使用且功能丰富的文本编辑工具,使得开发者在处理用户内容...
Yii2参考手册,Yii2中文手册完整版
同时,它还提供了英文版本的离线HTML文档以及"yii-guide-2.0-zh-cn"官方中文指南的PDF版本,这对于深入理解和学习Yii 2.0框架至关重要。 Yii 2.0 的核心特性包括: 1. **快速性能**:通过缓存机制、优化的查询构建...
"yii-basic-app-2.0.36.tgz"是Yii2框架的基础应用模板的压缩包,版本号为2.0.36。这个压缩包是为了方便开发者快速启动一个新的Yii2项目而设计的,它包含了构建基本Web应用所需的所有核心组件和文件。 首先,让我们...
这个名为 "yii-advanced-app-2.0.11.tgz" 的压缩包包含了所有必要的文件和配置,使得开发者可以快速地搭建起基于Yii 2的多层架构项目。 Yii 2.0框架是Yii框架的最新迭代,它在性能、安全性和可扩展性方面都有显著...
yii2-enhanced-gii Yii2 Gii(发电机)与关系 支持 在LinkedIn上支持我 安装 安装此扩展的首选方法是通过 。 无论运行 $ composer require mootensai/yii2-enhanced-gii:dev-master $ composer require kartik-v/...
yii-basic-app-2.0.7