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 相关文章推荐
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
解析PHP处理换行符的问题 \r\n
Jun 13 PHP
php日历制作代码分享
Jan 20 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
php技巧小结【推荐】
Jan 19 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 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下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
7个JS基础知识总结
2014/03/05 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
学习“七一”讲话精神体会
2014/07/08 职场文书
个人总结与自我评价
2014/09/18 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
vue使用element-ui按需引入
2022/05/20 Vue.js