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入门学习知识点三 PHP上传
Jul 14 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
浅谈ThinkPHP的URL重写
Nov 25 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
PHP时间函数使用详解
Mar 21 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
解决laravel5.4下的group by报错的问题
Oct 16 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 PHP
详解PHP Swoole与TCP三次握手
May 27 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
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
php中计算时间差的几种方法
2009/12/31 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
python的sorted用法详解
2019/06/25 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
美国批发零售网站:GearXS
2016/07/26 全球购物
土木建筑学生自我评价
2014/01/14 职场文书
信用社员工先进事迹材料
2014/02/04 职场文书
工程建设实施方案
2014/03/14 职场文书
2015年元旦标语大全
2014/12/09 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
2015年重阳节主持词
2015/07/04 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
python识别围棋定位棋盘位置
2021/07/26 Python
vue实现移动端div拖动效果
2022/03/03 Vue.js
Java 异步任务计算FutureTask
2022/04/28 Java/Android