0

私は 2 つの部分 (モバイル用の Web とサービス) を持つ yii2 基本アプリケーションを持っています。

mobile から発行された安静なリクエストを処理するモジュールを作成しました。このモジュールを残りのように構成したいと思います。そこで、モジュールディレクトリの横にこのモジュールの構成ファイルを作成しました。モジュールのyii2ドキュメントに記載されているように

/config/config.php:

return [

'components' => [
  'urlManager' => [
        'class' => 'yii\web\UrlManager',
        // Disable index.php
        'showScriptName' => false,
        // Disable r= routes
        'enablePrettyUrl' => true,
        'enableStrictParsing' => false,
        'rules' => array(

            [
                'class' => 'yii\rest\UrlRule',
                'controller' => 'mobile/mobile-clients',
                'extraPatterns' => ['GET search' => 'search']
            ],

        ),
    ],
    'request' => [
        'class' => '\yii\web\Request',
        'enableCookieValidation' => false,
        'parsers' => [
            'application/json' => 'yii\web\JsonParser',
        ],
    ],
]

];

モジュールクラスは次のとおりです。

<?php

namespace app\modules\Mobile;

use Yii;
use yii\base\Module;

class MobileService extends Module {

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

     public function init() {
         parent::init();     
         Yii::configure($this, require(__DIR__ .DIRECTORY_SEPARATOR     
                   .'config'.DIRECTORY_SEPARATOR .'config.php'));

     }
}         

問題は、アプリケーション構成 (config/main.php) で構成すると正常に動作するのに、要求コンポーネントが期待どおりに動作しないことです。

urlManager についても同じです。

何か案は?

4

1 に答える 1

0

私の問題の解決策は、yii2 基本アプリ内に新しいアプリケーションである API アプリケーションを作成することです。モデルと vendors ディレクトリを共有しますが、独自の構成とエントリ スクリプト (index.php) があります。これは、詳細についてのソリューション リンクです。

編集

api.config ファイルにユーザー コンポーネントを追加することを忘れないでください。

  'user' => [
  'identityClass' => 'app\models\User',
  'enableAutoLogin' => false,
  ], 

私のような場合には、yii2 の高度なアプリケーション構造を使用する方がよいと思います。しかし、このソリューションは完璧に機能します:)。

一番。

于 2015-07-22T21:57:48.520 に答える