yii2 在linux配置文件,Linux下Yii2关于模块(modules)的使用及配置

模块是独立的软件单元,由模型,视图, 控制器和其他支持组件组成,

终端用户可以访问在应用主体中已安装的模块的控制器, 模块被当成小应用主体来看待,

和应用主体不同的是, 模块不能单独部署,必须属于某个应用主体。

目录结构.

├── assets

├── components

├── config

├── controllers

├── messages

├── models

├── modules #### 模块目录

└── redactor #### 这就是redactor模块,其下有模型,视图,控制器等。

├── views

├── actions

├── controllers

├── models

├── config.php

└── RedactorModule.php

├── runtime

├── views

└── web

创建模块

我们已经看到在模块redactor目录下, 有 controllers (控制器), models(模型), views(试图) 和应用非常相似。这就组成了一个模块的基本单元。

下面让我们来分解一下:

模块类

RedactorModule.php 就是模块的模块类文件,模块类都要继承 yii\base\Module。该文件直接放在模块的basepath下,并且会被自动加载。

当模块类被访问和应用主题一样,会创建该模块的唯一实例,并为模块内代码共享数据和组件。<?php

namespace app\modules\admin;

use yii\base\Module;

/**

* Admin module definition class

*/

class RedactorModule extends Module

{

/**

* @inheritdoc

*/

public $controllerNamespace = 'app\modules\redactor\controllers';

/**

* @inheritdoc

*/

public function init()

{

parent::init();

// 从config.php 加载模块配置

\Yii::configure($this, require __DIR__ . '/config.php');

}

}

controllers(控制器)<?php

namespace app\modules\redactor\controllers;

class UploadController extends \yii\web\Controller

{

public $enableCsrfValidation = false;

public function behaviors()

{

return [

[

'class' => 'yii\filters\ContentNegotiator',

'formats' => [

'application/json' => Response::FORMAT_JSON

],

]

];

}

public function actionsFile()

{

//上传文件

}

}

models (模型)<?php

namespace backend\modules\redactor\models;

use Yii;

use yii\web\UploadedFile;

use yii\helpers\Inflector;

class FileUploadModel extends \yii\base\Model

{

public $file;

private $_fileName;

public function rules()

{

return [

['file', 'file', 'extensions' => Yii::$app->controller->module->fileAllowExtensions]

];

}

public function upload()

{

if ($this->validate()) {

return $this->file->saveAs(Yii::$app->controller->module->getFilePath($this->getFileName()), true);

}

return false;

}

....

}

由于上传文件模块是提供的上传功能集成在其他页面使用这里不做视图展示。

配置模块

模块创建完成以后 ,打开应用的配置文件 ./config/main.php 在modules下添加模块配置,这样我们就可以通过url来使用模块的功能了。'bootstrap' => ['log'],

'modules' => [

'redactor' => [

'class' => 'app\modules\redactor\RedactorModule',

],

],

'language'=> 'zh-CN',

'components' => [],

访问

访问之前记得做url美化。http://hostname/redactor/upload/file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值