目次
概要
は、2 つのアプリケーション frontendbackend の web を開きます。 code> ディレクトリは、エントリ ファイル index.php を生成します。 frontendbackend は、それぞれフロントエンド アプリケーションとバックグラウンド アプリケーションを表します。内部のディレクトリ構造は同じです:
多模块
ホームページ バックエンド開発 PHPチュートリアル Yii マルチアプリケーション マルチモジュール

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

Mar 30, 2018 am 10:55 AM
応用 モジュール

この記事では、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iPhoneのホーム画面から削除を元に戻す方法 iPhoneのホーム画面から削除を元に戻す方法 Apr 17, 2024 pm 07:37 PM

ホーム画面から重要なものを削除してしまい、元に戻そうとしていますか?さまざまな方法でアプリのアイコンを画面に戻すことができます。 iPhoneでホーム画面から削除を元に戻す方法 前述したように、iPhoneでこの変更を復元する方法はいくつかあります。方法 1 – App ライブラリのアプリ アイコンを置き換える App ライブラリから直接ホーム画面にアプリ アイコンを配置できます。ステップ 1 – 横にスワイプして、アプリ ライブラリ内のすべてのアプリを見つけます。ステップ 2 – 前に削除したアプリのアイコンを見つけます。ステップ 3 – アプリのアイコンをメインライブラリからホーム画面上の正しい場所にドラッグするだけです。これが応用図です

PHP における矢印記号の役割と実際の応用 PHP における矢印記号の役割と実際の応用 Mar 22, 2024 am 11:30 AM

PHP における矢印記号の役割と実際の応用 PHP では、通常、オブジェクトのプロパティとメソッドにアクセスするために矢印記号 (-&gt;) が使用されます。オブジェクトとは、PHP におけるオブジェクト指向プログラミング (OOP) の基本概念の 1 つで、実際の開発においては、矢印記号がオブジェクトを操作する上で重要な役割を果たします。この記事では、矢印記号の役割と実際の応用例を紹介し、読者の理解を深めるために具体的なコード例を示します。 1. オブジェクトのプロパティにアクセスするための矢印シンボルの役割 矢印シンボルは、オブジェクトのプロパティにアクセスするために使用できます。ペアをインスタンス化するとき

初心者から熟練者まで: Linux tee コマンドのさまざまなアプリケーション シナリオを探索する 初心者から熟練者まで: Linux tee コマンドのさまざまなアプリケーション シナリオを探索する Mar 20, 2024 am 10:00 AM

Linuxtee コマンドは、既存の出力に影響を与えることなく、出力をファイルに書き込んだり、別のコマンドに出力を送信したりできる、非常に便利なコマンド ライン ツールです。この記事では、入門から習熟まで、Linuxtee コマンドのさまざまな応用シナリオを詳しく見ていきます。 1. 基本的な使い方 まずは、teeコマンドの基本的な使い方を見てみましょう。 tee コマンドの構文は次のとおりです。 tee[OPTION]...[FILE]...このコマンドは、標準入力からデータを読み取り、データを保存します。

Go 言語の利点と応用シナリオを探る Go 言語の利点と応用シナリオを探る Mar 27, 2024 pm 03:48 PM

Go 言語は、Google によって開発され、2007 年に初めてリリースされたオープンソース プログラミング言語です。シンプルで習得しやすく、効率的で同時実行性の高い言語となるように設計されており、ますます多くの開発者に好まれています。この記事では、Go 言語の利点を探り、Go 言語に適したいくつかのアプリケーション シナリオを紹介し、具体的なコード例を示します。利点: 強力な同時実行性: Go 言語には、同時プログラミングを簡単に実装できる軽量スレッドのゴルーチンのサポートが組み込まれています。 Goroutin は go キーワードを使用して開始できます

クラウドコンピューティング分野におけるLinuxの幅広い応用 クラウドコンピューティング分野におけるLinuxの幅広い応用 Mar 20, 2024 pm 04:51 PM

クラウド コンピューティングの分野における Linux の幅広い応用 クラウド コンピューティング テクノロジの継続的な開発と普及に伴い、オープン ソース オペレーティング システムとしての Linux はクラウド コンピューティングの分野で重要な役割を果たしています。 Linux システムは、その安定性、セキュリティ、柔軟性により、さまざまなクラウド コンピューティング プラットフォームやサービスで広く使用されており、クラウド コンピューティング テクノロジーの開発に強固な基盤を提供しています。この記事では、クラウド コンピューティング分野における Linux の幅広いアプリケーションを紹介し、具体的なコード例を示します。 1. クラウドコンピューティングプラットフォームにおけるLinuxのアプリケーション仮想化技術 仮想化技術

MySQL タイムスタンプを理解する: 機能、特徴、およびアプリケーション シナリオ MySQL タイムスタンプを理解する: 機能、特徴、およびアプリケーション シナリオ Mar 15, 2024 pm 04:36 PM

MySQL タイムスタンプは、日付、時刻、または日付と時刻を格納できる非常に重要なデータ型です。実際の開発プロセスでは、タイムスタンプを合理的に使用すると、データベース操作の効率が向上し、時間関連のクエリと計算が容易になります。この記事では、MySQL タイムスタンプの機能、特徴、および適用シナリオについて説明し、具体的なコード例を示して説明します。 1. MySQL タイムスタンプの機能と特徴 MySQL には 2 種類のタイムスタンプがあり、1 つは TIMESTAMP です。

Go Get: Go モジュールを取得して管理する Go Get: Go モジュールを取得して管理する Apr 08, 2024 am 10:06 AM

明確な答え: GoGet は、Go モジュールとその依存関係を管理するためのコマンド ライン ツールです。詳細な説明: GoGet を使用して Go モジュールを取得できます。構文は goget[-u] です。特定のモジュール バージョンを指定できます: goget@。 goget -u を使用して、インストールされているモジュールを更新します。使用されなくなったモジュールは gomodtidy 経由で削除します。

実行中のアプリを終了する方法に関する Apple のチュートリアル 実行中のアプリを終了する方法に関する Apple のチュートリアル Mar 22, 2024 pm 10:00 PM

1. まず、小さな白い点をクリックします。 2. デバイスをクリックします。 3. 「詳細」をクリックします。 4. 「アプリケーションスイッチャー」をクリックします。 5. アプリケーションのバックグラウンドを閉じます。

See all articles