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 30 PHP
phpMyadmin 用户权限中英对照
Apr 02 PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 PHP
百度地图API应用之获取用户的具体位置
Jun 10 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
Apr 25 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
php base64 编码与解码实例代码
Mar 21 PHP
php json相关函数用法示例
Mar 28 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
PHP以json或xml格式返回请求数据的方法
May 31 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
搜索引擎技术核心揭密
2006/10/09 PHP
PHP 5.3.0 安装分析心得
2009/08/07 PHP
php curl常用的5个经典例子
2017/01/20 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
JavaScript实现计数器基础方法
2017/10/10 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
python2 与python3的print区别小结
2018/01/16 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
python三方库之requests的快速上手
2019/03/04 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
python绘制分布折线图的示例
2020/09/24 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
建筑设计所实习生自我鉴定
2013/09/25 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
趵突泉导游词
2015/02/03 职场文书
办公室主任个人总结
2015/02/28 职场文书