ホームページ >バックエンド開発 >PHPチュートリアル >Yii マルチアプリケーション マルチモジュール

Yii マルチアプリケーション マルチモジュール

不言
不言オリジナル
2018-03-30 10:55:312385ブラウズ

この記事では、YII 2.0.7 を例として、Yii マルチアプリケーションとマルチモジュールについて説明します。必要な方は参考にしてください。

概要

まず、マルチアプリケーションの特徴を見てみましょう。マルチモジュール:

マルチアプリケーションの特徴:

  • 独立した設定ファイル

  • 独立したドメイン名

マルチモジュールの特徴:

  • 統合された設定ファイルドメインname

  • では、実際に複数のアプリケーションを使用するかどうかを決定するにはどうすればよいでしょうか? 複数のモジュールについてはどうすればよいでしょうか?

フロントエンドとバックエンドを分離する場合、たとえば、バックエンドは管理用に別のドメイン名が必要です。これには複数のアプリケーションを使用する必要があります

  • 複数のアプリケーションの構成は完全に異なり、複数を使用する方が便利ですアプリケーションでは、別の設定ファイルを使用します

  • 複数のアプリケーション アプリケーションにはより多くのドメイン名設定が必要であり、価格の比較は面倒です。小規模なプロジェクトの場合は、複数のモジュールの方が優れています

  • 複数のアプリケーション

  • 。公式 Web サイトから Yii2 のアドバンスト アプリケーション テンプレートをダウンロードします: yii-advanced-app-2.0.12.tgz。ダウンロードして解凍した後、advanced ディレクトリに入り、次のコマンドを実行します。
# Windows
init.bat

# Linux
init

は、2 つのアプリケーション frontendbackend の <code>web を開きます。 code> ディレクトリは、エントリ ファイル index.php を生成します。 frontendbackend は、それぞれフロントエンド アプリケーションとバックグラウンド アプリケーションを表します。内部のディレクトリ構造は同じです:

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

実行: advanced目录,运行:

$ 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

会在frontendbackend两个应用的web目录生成入口文件index.phpfrontendbackend分别表示前台和后台应用,里面的目录结构是一样的:

$ cd frontend
$ mkdir -p modules/h5 && cd modules/h5
$ mkdir controllers
$ touch 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;;
        // ...  其他初始化代码 ...
    }
}

打开浏览器输入http://0.0.0.0:8888就可以访问默认的首页了。

建议model还是放在根目录的common/models里。

多模块

多模块可以参照http://www.yiichina.com/doc/g...。示例:在frontend里新建一个h5应用:

1、建立相关目录

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

2、Module.php内容示例:

<?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;);
    }
}

3、在frontend/config/main.php增加模块的申明:

namespace frontend\controllers\test;

4、在modules/h5/controllers新建控制器类:

r=v1/site/index
r=v2/site/index

浏览器访问:http://localhost:8888/index.php?r=h5/site/index 即可访问。

还有一种方法也可以实现类似该URL路由的访问形式,例如r=test/site/index。只需要在frontend/controllers目录新建个子目录叫testrrreee

ブラウザを開いて http://0.0 と入力します。 0.0:8888 ではデフォルトのホームページにアクセスできます。

モデルはルート ディレクトリの common/models に配置することをお勧めします。

複数のモジュール

複数のモジュールについては、http://www.yiichina.com/doc/g…。

例: frontend に新しい h5 アプリケーションを作成します:

1. 関連するディレクトリを作成しますrrreee2. Module.php のコンテンツの例:

rrreee

3. frontend/config/main.php にモジュール宣言を追加します: rrreee4. modules/h5/controllers に新しいコントローラー クラスを作成します:

rrreee

ブラウザアクセス: http://localhost:8888/index.php?r=h5/site/index にアクセスします。 この URL ルートと同様のアクセスフォームを実装する方法もあります (r=test/site/index など)。 frontend/controllers ディレクトリに test という新しいサブディレクトリを作成し、その中にコントローラーを配置し、名前空間を

rrreee

に変更するだけです。これは、API バージョン管理に使用できます。例:
rrreee

原文の公開場所:

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

関連する推奨事項:

🎜🎜 Yii2 設定の基本概念🎜 🎜🎜 🎜Yii2.0実行プロセスの詳細説明🎜🎜🎜🎜Yiiフレームワークの導入方法🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜

以上がYii マルチアプリケーション マルチモジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。