方案一:如果模块儿较少,不用专门给模块儿目录定义别名,酱紫做就ok啦。

1、在项目根目录下面创建一个 modules 目录。

2、进入 gii : http://localhost/basic/web/index.php?r=gii

假如我现在需要生成一个 report 的模块儿,可以按如下填写:

然后将它提示生成的那一行 repost=>['class'=>'app\modules\report\Module'] 配置到 app\config\web.php的modules中就ok啦。

如果需要访问的话,路由为:http://localhost/basic/web/index.php?r=report/default/index

report 为模块儿名,default为控制器名,index为方法名

方案二:如果模块儿很多,建意给每个模块儿单独定义一个别名,

此处的别名定义是要在预加载的时候就定义好,可不是在 app\config\web.php的 aliases=>[ ] 中定义的哦。

方法:1、我们可以先创建一个 common 目录,在 common中创建一个 bootstrap.php 文件,当然也可以自定义。

2、在 common\bootstrap.php 中添加如下别名:

Yii::setAlias('report', dirname(__DIR__) . '/modules/report'); 

// 看清楚哦,上面的别名定义可是没有 @ 符号的哦,因为我们要把它当成模块儿的根目录,模块其实也是一个独立的软件单元,它包含 模型, 视图, 控制器 和其他支持的组件。 在许多方面上,模块看起来像一个 应用,所以我们可以把它暂时看成一个应用

3、在 入口文件 index.php 中添加一行:

defined('YII_DEBUG') or define('YII_DEBUG', true);  //标识应用是否应用在调试模式
defined('YII_ENV') or define('YII_ENV', 'dev'); // 标识应用运行的环境
require(__DIR__ . '/../vendor/autoload.php'); // 注册 composer 自动加载器
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); // 包含 Yii 类文件 require(__DIR__ . '/../common/bootstrap.php');//这就是我们自己添加的文件了 $config = require(__DIR__ . '/../config/web.php'); // 加载应用配置

把它放到入口文件中,系统启动时就会被加载,那么此时 report 就相于  $_SERVER['DOCUMENT_ROOT']\modules\report 的路径啦,模块儿中的命名空间都可以以 report开头。

例如,此时的 modules\report\Module.php 的命名空间就是 namespace report

<?php

namespace report;

/**
* report module definition class
*/
class Module extends \yii\base\Module
{
/**
* @inheritdoc
*/
public $controllerNamespace = 'report\controllers'; /**
* @inheritdoc
*/
public function init()
{
parent::init(); // custom initialization code goes here
}
}

控制的 命名空间也是 namespace report\controllers

namespace report\controllers;

use yii\web\Controller;

/**
* Default controller for the `report` module
*/
class DefaultController extends Controller
{
/**
* Renders the index view for the module
* @return string
*/
public function actionIndex()
{
return $this->render('index');
}
}

`

yii2 创建模块modules的更多相关文章

  1. Yii2 在模块modules间跳转时,url自动加模块名

    如目的地址product/detail, 当前模块是admin, 访问时如果目的url'product/detail',会变成'admin/product/detail'. 解决方法:url改成'/p ...

  2. yii 创建模块module

    yii安装完成后的使用: yii也是单入口脚本, 入口文件为  http://hostname/web/index.php 使用模块: 在根目录下创建modules目录 在modules目录下创建模块 ...

  3. Lua标准库- 模块(Modules)

    Lua包库为lua提供简易的加载及创建模块的方法,由require.module方法及package表组成 1.module (name [, ···]) 功能:建立一个模块. module的处理流程 ...

  4. AngularJS进阶(四十)创建模块、服务

    AngularJS进阶(四十)创建模块.服务 学习要点 使用模块构架应用 创建和使用服务 为什么要使用和创建服务与模块? 服务允许你打包可重用的功能,使之能在此应用中使用. 模块允许你打包可重用的功能 ...

  5. 【ThinkPHP】解析ThinkPHP5创建模块

    在根目录下有一个build.php文件,该文件是自动生成的,自动创建模块.build.php的文件内容如下: <?php return [ // 生成应用公共文件 '__file__' => ...

  6. thinkphp3.2笔记(2)调试模式,配置项C,创建模块, 四种URL模式,URL生成,跳转

    一.调试模式 TP的调试模式其实就控制了TP关于配置信息以及函数的缓存功能 如果开启了调试模式,每次访问项目,Tp都会去加载最新的配置以及函数信息. 如果关闭了调试模式,当tp第一次访问时会降配置以及 ...

  7. Odoo中创建模块语句

    使用odoo的odoo-bin命令创建模块,比较方便. 进入终端界面(windows中可以是cmd中,linux中可以是$命令提示符下),以下在Windows中为例: python odoo-bin ...

  8. Angular问题02 创建模块失败、 angular-cli名称问题、升级angular-cli

    1 创建模块失败 1.1 问题描述 利用 ng g m 模块名 创建新模块时出错 1.2 错误信息 1.3 问题原因 angular-cli 版本出现问题 1.4 解决办法 卸载掉之前使用的 angu ...

  9. 6、perl创建模块(Exporter)及路径 引用 嵌套 查询模块

    参考博客:http://www.cnblogs.com/xudongliang/tag/perl/ 1.perl 模块的创建以及制定perl 模块的路径 (1)创建一个Myfun.pm模块. #/us ...

随机推荐

  1. Tensorflow:DCGAN生成手写数字

    参考地址:https://blog.csdn.net/miracle_ma/article/details/78305991 使用DCGAN(deep convolutional GAN):深度卷积G ...

  2. MyBatis - 6.Spring整合MyBatis

    1.查看不同MyBatis版本整合Spring时使用的适配包: http://www.mybatis.org/spring/ 2.下载整合适配包 https://github.com/mybatis/ ...

  3. linux下几个常用软件

    Ubuntu 软件包地址 https://packages.ubuntu.com/ 一. 字体 不管是雅黑还是宋体,从windows cp过来后, 直接双击打开并安装 二. Meld 可视的diff和 ...

  4. [已解决]virtualBox安装CentOS-6.3-x86_64-bin-DVD1.iso为什么总是显示命令行界面

    CentOS 6.3的安装界面分为2种,一种是图形化安装界面,另一种则类似于Dos系统的纯文本安装界面. 进入图形安装界面的必要条件是硬件系统的物理内存大于628M以上即可,因为之前在VBox虚拟机里 ...

  5. nginx 正则及rewrite常用规则实例

    一.正则表达式匹配,其中:* ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配二.文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* ...

  6. Centos安装Samba共享服务器

    安装Samba 查看Samba是否已安装 1.# rpm -qa | grep samba

  7. 排查Linux机器是否已被入侵

    来自--马哥Linux运维 1.入侵者可能会删除机器的日志信息 ,可以查看日志信息是否存在后者被清除 [root@zklf-server02 ~]# ll -h /var/log/ total 3.4 ...

  8. 2018牛客网暑假ACM多校训练赛(第四场)E Skyline 线段树 扫描线

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round4-E.html 题目传送门 - https://www.no ...

  9. BZOJ3295 [Cqoi2011]动态逆序对 分治 树状数组

    原文链接http://www.cnblogs.com/zhouzhendong/p/8678185.html 题目传送门 - BZOJ3295 题意 对于序列$A$,它的逆序对数定义为满足$i< ...

  10. js将时间戳转为时间格式

    时间戳转时间格式 //分钟 let timeM= parseInt(msg/1000/60%60); if(timeM<10){ timeM="0"+timeM; } //秒 ...