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实现的获取URL信息的类
Jan 02 PHP
PHP实现多条件查询实例代码
Jul 17 PHP
php 归并排序 数组交集
May 10 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
php银联网页支付实现方法
Mar 04 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
Laravel多域名下字段验证的方法
Apr 04 PHP
php操作redis数据库常见方法实例总结
Feb 20 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版本实现代码
2012/09/15 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
javascript 动态加载 css 方法总结
2009/07/11 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
javascript简易画板开发
2020/04/12 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
python+django加载静态网页模板解析
2017/12/12 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
python梯度下降算法的实现
2020/02/24 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
Python是什么 Python的用处
2020/05/26 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
关于VPN
2012/06/10 面试题
什么是makefile? 如何编写makefile?
2013/01/02 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
家长给学校的建议书
2014/05/15 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技
MySQL事务的隔离级别详情
2022/07/15 MySQL