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 相关文章推荐
elgg 获取文件图标地址的方法
Mar 20 PHP
实用的简单PHP分页集合包括使用方法
Oct 21 PHP
php calender(日历)二个版本代码示例(解决2038问题)
Dec 24 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
php学习笔记之基础知识
Nov 08 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
windows下apache搭建php开发环境
Aug 27 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 PHP
PHP unset函数原理及使用方法解析
Aug 14 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实现mysql数据库备份类
2008/03/20 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
php中使用websocket详解
2016/09/23 PHP
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
javascript几个易错点记录
2014/11/26 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
分析python切片原理和方法
2017/12/19 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
2014年个人售房协议书
2014/10/30 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python