首頁  >  文章  >  後端開發  >  Yii 多重應用多模組

Yii 多重應用多模組

不言
不言原創
2018-03-30 10:55:312355瀏覽

本文以YII 2.0.7為例,給大家分享了關於Yii多應用多模組,有需要的朋友可以參考一下

概述

先看看多應用和多模組的特性:

多重應用的特性:

  • 獨立設定檔

  • ##獨立網域

#多重模組的特性:

  • 統一設定檔

  • 統一網域名稱

那麼,實際上該怎麼決定使用多應用還是多模組呢?

  • 對於前後台分離,例如後台需要單獨的網域進行管理這個應該用多應用

  • 多應用程式的設定完全不一樣,用多應用程式比較方便,設定檔使用不同的

  • 多應用程式需要更多的域名配置,比價麻煩,對於小項目也不區分域名,多模組比較好

多應用

最簡單的方法是下載官網的Yii2的高階應用程式範本:yii-advanced-app-2.0.12.tgz。下載下來解壓縮後,進入

advanced目錄,運行:

# Windows
init.bat

# Linux
init

會在

frontendbackend兩個應用的web目錄產生入口檔案index.phpfrontendbackend分別表示前台和背景應用,裡面的目錄結構是一樣的:

assets/  
config/  
controllers/  
models/  
runtime/  
views/  
web/

運行:

$ cd advanced/frontend/web
$ php -S 0.0.0.0:8888
PHP 5.6.22 Development Server started at Sun Aug 20 21:10:28 2017
Listening on http://0.0.0.0:8888

開啟瀏覽器輸入http://0.0.0.0:8888就可以存取預設的首頁了。

建議model還是放在根目錄的

common/models裡。

多模組

多模組可以參考

http://www.yiichina.com/doc/g...。 範例:在frontend裡新建一個h5應用:

1、建立相關目錄

$ cd frontend
$ mkdir -p modules/h5 && cd modules/h5
$ mkdir controllers
$ touch Module.php

2、

Module. php內容範例:

<?php
namespace frontend\modules\h5;

class Module extends \yii\base\Module
{
    public function init()
    {
        parent::init();

        $this->params[&#39;foo&#39;] = &#39;bar&#39;;
        // ...  其他初始化代码 ...
    }
}

3、在

frontend/config/main.php增加模組的申明:

&#39;modules&#39; => [
    &#39;h5&#39; => [
        &#39;class&#39; => &#39;frontend\modules\h5\Module&#39;,
        // ... 模块其他配置 ...
    ],
],

4、在

modules/ h5/controllers新控制器類別:

<?php
namespace frontend\modules\h5\controllers;

use Yii;
use common\models\LoginForm;
use frontend\models\SignupForm;
use frontend\models\ContactForm;
use yii\base\InvalidParamException;
use yii\web\BadRequestHttpException;
use yii\web\Controller;

class SiteController extends Controller
{
    public function actionIndex()
    {
        return "hello h5 module";
        //return $this->render(&#39;index&#39;);
    }
}

瀏覽器存取:

http://localhost:8888/index.php?r=h5/site/index 即可訪問。

還有一種方法也可以實作類似該URL路由的存取形式,例如

r=test/site/index。只需要在frontend/controllers目錄新個子目錄叫test,把控制器放在裡面,然後改下命名空間為

namespace frontend\controllers\test;
就可以了。這種可以用於API版本控制,例如:

r=v1/site/index
r=v2/site/index
原載於:

http://www.cnblogs.com/52fhy/...

#相關推薦:

Yii2配置基本概念

Yii2.0執行流程詳解

如何引入Yii框架



以上是Yii 多重應用多模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn