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异步调用socket实现代码
Jan 12 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
PHP之uniqid()函数用法
Nov 03 PHP
分享十款最出色的PHP安全开发库中文详细介绍
Mar 22 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
php-msf源码详解
Dec 25 PHP
详细解读php的命名空间(二)
Feb 21 PHP
PHP实现的curl批量请求操作示例
Jun 06 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 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
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
简单实现JS倒计时效果
2016/12/23 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
JS使用正则表达式实现常用的表单验证功能分析
2020/04/30 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
Python中用Spark模块的使用教程
2015/04/13 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
python绘制漏斗图步骤详解
2019/03/04 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
基于Django实现日志记录报错信息
2019/12/17 Python
Python for循环与getitem的关系详解
2020/01/02 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
Python计算IV值的示例讲解
2020/02/28 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
python要安装在哪个盘
2020/06/15 Python
python3.5的包存放的具体路径
2020/08/16 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
公司培训心得体会
2014/01/03 职场文书
专家推荐信模板
2014/05/09 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书