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

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

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

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

然后将它提示生成的那一行 repost=>['class'=>'app\modules\report\Module'] 配置到 app\config\web.phpmodules中就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. 腾讯应用宝Android 应用加固(乐固)操作说明(转)

    此处引用腾讯云对加固的优点说明如下: 为什么应用需要加固? 若应用不做任何安全防护,极易被病毒植入.广告替换.支付渠道篡改.钓鱼.信息劫持等,严重侵害开发者的利益. 应用进行安全防护,防止应用分发后, ...

  2. 安装好ubuntu 18.10之后,屏幕一直在自动旋转,怎么办?

    sudo apt-get install okular dia gimp Gparted sudo add-apt-repository universesudo apt install gnome- ...

  3. Visual Studio 2017离线安装失败:安装程序清单签名验证失败

    解决办法: 方法1:运行gpeidit.msc,然后  Windows 设置-安全设置->本地策略-安全选项-系统机密->将FIPS兼容算法用于加密.哈希和签名-设置禁用 方法2:删除vs ...

  4. org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /eclipse20171118

    1:如果有一天,你有幸看到了这个错误,也许你像我一样low,因为此时,你已经准备开发Zookeeper程序了,却还没有把Zookeeper的服务启动起来. org.apache.zookeeper.K ...

  5. 认识IQueryable和IQueryProvider接口

    1.Func<Student, bool>和Expression<Func<Student, bool>>的区别 class Program { static vo ...

  6. 安全测试robots

    http://stock.pingan.com/robots.txt

  7. day9.初识函数

    python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...

  8. scheduler 基本原理

    Quartz 任务调度的核心元素是 scheduler, trigger 和 job,其中 trigger 和 job 是任务调度的元数据, scheduler 是实际执行调度的控制器. 1.sche ...

  9. PAT (Basic Level) Practise - 成绩排名

    1004. 成绩排名 题目链接:https://www.patest.cn/contests/pat-b-practise/1004 读入n名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓 ...

  10. PAT (Basic Level) Practise - 写出这个数

    题目链接:https://www.patest.cn/contests/pat-b-practise/1002 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试 ...