>  기사  >  백엔드 개발  >  Yii 다중 애플리케이션 다중 모듈

Yii 다중 애플리케이션 다중 모듈

不言
不言원래의
2018-03-30 10:55:312358검색

이 글은 YII 2.0.7을 예로 들어 Yii 다중 애플리케이션과 다중 모듈에 대해 설명합니다. 도움이 필요한 친구들은 이를 참고할 수 있습니다.

개요

먼저 다중 애플리케이션의 특징을 살펴보겠습니다. 및 멀티 모듈:

멀티 애플리케이션 기능:

  • 독립적인 구성 파일

  • 독립적인 도메인 이름

멀티 모듈의 기능:

  • 통합된 구성 파일

  • 통합 도메인 name

그렇다면 실제로 여러 애플리케이션을 사용할지 여부를 어떻게 결정해야 할까요?

  • 프론트와 백엔드를 분리하려면 예를 들어 백엔드 관리를 위해 별도의 도메인 이름이 필요하므로 여러 애플리케이션을 사용해야 합니다.

  • 여러 애플리케이션의 구성은 완전히 다르므로 여러 애플리케이션을 사용하는 것이 더 편리합니다. 애플리케이션은 다른 구성 파일을 사용하세요

  • 애플리케이션에는 더 많은 도메인 이름 구성이 필요하며 가격 비교가 번거롭습니다. 소규모 프로젝트의 경우 도메인 이름을 구분하지 않는 것이 좋습니다

다중 애플리케이션

공식 웹사이트(yii-advanced-app-2.0.12.tgz)에서 Yii2의 고급 애플리케이션 템플릿을 다운로드하세요. 다운로드하고 압축을 푼 후 advanced 디렉토리에 들어가서 다음을 실행하세요. 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;
는 두 애플리케이션 frontendbackend의 <code>web을 엽니다. code> 디렉토리는 항목 파일 index.php를 생성합니다. frontendbackend는 각각 프런트엔드 및 백그라운드 애플리케이션을 나타냅니다. 내부 디렉터리 구조는 동일합니다.

r=v1/site/index
r=v2/site/index
Run:

rrreee브라우저를 열고 http://0.0을 입력합니다. 0.0:8888은 기본 홈 페이지에 액세스할 수 있습니다.

모델은 루트 디렉터리의 common/models에 배치하는 것이 좋습니다.

다중 모듈

다중 모듈에 대해서는 http://www.yiichina.com/doc/g… 예: frontend에서 새 h5 애플리케이션 만들기:

1. 관련 디렉터리 만들기rrreee2 콘텐츠 예:

rrreee

3. frontend/config/main.php에 모듈 선언 추가: rrreee4 modules/h5/controllers에 새 컨트롤러 클래스 생성:

rrreee

브라우저 액세스: http://localhost:8888/index.php?r=h5/site/index에 액세스합니다.

r=test/site/index와 같이 이 URL 경로와 유사한 액세스 양식을 구현하는 방법도 있습니다. frontend/controllers 디렉터리에 test라는 새 하위 디렉터리를 만들고 여기에 컨트롤러를 넣은 다음 네임스페이스를

rrreee
로 변경하면 됩니다. 이는 API 버전 제어에 사용될 수 있습니다. 예:

rrreee

원본 게시 위치:

http://www.cnblogs.com/52fhy/...🎜 🎜🎜관련 권장 사항: 🎜🎜🎜Yii2 구성의 기본 개념🎜 🎜🎜 🎜Yii2.0 실행 과정에 대한 자세한 설명🎜🎜🎜🎜Yii 프레임워크 소개🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜

위 내용은 Yii 다중 애플리케이션 다중 모듈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.