YII2框架中添加自定义模块的方法实例分析


Posted in PHP onMarch 18, 2020

本文实例讲述了YII2框架中添加自定义模块的方法。分享给大家供大家参考,具体如下:

有些时候系统功能过于复杂,这时我们需要通过模块把一些功能区分开来,便于管理与维护。

我用的是Yii2的基本应用程序模板,程序其实已经给我们提供了一个模块,就是app本身。YII2中是可以无限嵌套模块的。不过一般不要超过2层。

我们在app下创建一个modules的目录,并创建一个api子目录,子目录下创建Api.php文件。

Api.php代码如下:

<?php

namespace app\modules\api;

use yii\base\Module;

//注意模块必须继承自yii\base\Module
class Api extends Module
{

}

在api子目录下,我们分别创建controllers,views,models目录,你会发现,这里的目录结构跟app的很像,其实app就是一个模块,不过它是顶层模块。

YII2框架中添加自定义模块的方法实例分析

然后我们在controllers里创建一个IndexController.php,在views下创建index目录,并创建index.php

IndexController.php代码如下:

<?php

//注意这里的命名空间,要跟你的目录对应
namespace app\modules\api\controllers;

use yii\web\Controller;


class IndexController extends Controller
{

  public function actionIndex()
  {
    return $this->render('index', ['data' => 'hello world']);
  }
}

index.php代码如下:

<?php echo $data; ?>

最后我们还需要在config/web.php中配置一个我们的模块,就可以访问了。

'modules' => [
	'api' => [
		'class' => 'app\modules\api\Api',
	],
],

通过api/index/index来访问,如果没有配置URL美化,通过?r=api/index/index来访问

YII2框架中添加自定义模块的方法实例分析

这样我们的api模块就创建好了,当然api模块下我们还可以创建modules目录来创建子模块,不过最好不要超过2层。

不过YII2中的GII已经帮我们做好了生成模块的操作,不需要像上面那样那么麻烦自已配置。

通过访问/gii,或者?r=gii,来使用GII。

YII2框架中添加自定义模块的方法实例分析

我们选择Module Generator,点击start。

YII2框架中添加自定义模块的方法实例分析

点击preview,查看文件和路径是否正确,点击Generate进行生成。

YII2框架中添加自定义模块的方法实例分析

这样,一个模块就创建好了。是不是很方便。

YII2框架中添加自定义模块的方法实例分析

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
实用函数7
Nov 08 PHP
PHP 编写大型网站问题集
May 07 PHP
php输出xml格式字符串(用的这个)
Jul 12 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
Jul 22 PHP
一个PHP并发访问实例代码
Sep 06 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
php curl选项列表(超详细)
Jul 01 PHP
php正则表达式获取内容所有链接
Jul 24 PHP
百度地图API使用方法详解
Aug 25 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 #PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 #PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
Mar 18 #PHP
Laravel框架下的Contracts契约详解
Mar 17 #PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 16 #PHP
PHP代码加密的方法总结
Mar 13 #PHP
YII2框架中behavior行为的理解与使用方法示例
Mar 13 #PHP
You might like
php中并发读写文件冲突的解决方案
2013/10/25 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
CI框架常用方法小结
2016/05/17 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
功能强大的php文件上传类
2016/08/29 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
python改变日志(logging)存放位置的示例
2014/03/27 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
Europcar意大利:汽车租赁
2019/07/07 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
2014年帮扶工作总结
2014/11/26 职场文书
二婚主持词
2015/06/30 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书