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 相关文章推荐
php上传文件的增强函数
Jul 21 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
php tp验证表单与自动填充函数代码
Feb 22 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
php实现的错误处理封装类实例
Jun 20 PHP
PHP并发查询MySQL的实例代码
Aug 09 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
Aug 03 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 类商品秒杀计时实现代码
2010/05/05 PHP
Javascript中的this绑定介绍
2011/09/22 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
原生js实现放大镜
2017/02/20 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中的默认参数实例分析
2018/01/29 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
python如何实现复制目录到指定目录
2020/02/13 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
青春励志演讲稿
2014/04/29 职场文书
投标保密承诺书
2014/05/19 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
Golang gRPC HTTP协议转换示例
2022/06/16 Golang