zoukankan      html  css  js  c++  java
  • yii2 创建模块modules

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

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

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

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

    然后将它提示生成的那一行 repost=>['class'=>'appmodules eportModule'] 配置到 appconfigweb.phpmodules中就ok啦。

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

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

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

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

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

    2、在 commonootstrap.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 eport 的路径啦,模块儿中的命名空间都可以以 report开头

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

    <?php
    
    namespace report;
    
    /**
     * report module definition class
     */
    class Module extends yiiaseModule
    {
        /**
         * @inheritdoc
         */
        public $controllerNamespace = 'reportcontrollers';
    
        /**
         * @inheritdoc
         */
        public function init()
        {
            parent::init();
    
            // custom initialization code goes here
        }
    }

    控制的 命名空间也是 namespace reportcontrollers

    namespace reportcontrollers;
    
    use yiiwebController;
    
    /**
     * 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');
        }
    }

    `

  • 相关阅读:
    第二十一章流 1流的操作 简单
    第二十章友元类与嵌套类 1友元类 简单
    第十九章 19 利用私有继承来实现代码重用 简单
    第二十章友元类与嵌套类 2嵌套类 简单
    第十九章 8链表类Node 简单
    第二十一章流 3用cin输入 简单
    第十九章 10 图书 药品管理系统 简单
    第十九章 11图书 药品管理系统 简单
    第二十一章流 4文件的输入和输出 简单
    第十九章 12 什么时候使用私有继承,什么时候使用包含 简单
  • 原文地址:https://www.cnblogs.com/chrdai/p/9046478.html
Copyright © 2011-2022 走看看