이 글은 YII 2.0.7을 예로 들어 Yii 다중 애플리케이션과 다중 모듈에 대해 설명합니다. 도움이 필요한 친구들은 이를 참고할 수 있습니다.
먼저 다중 애플리케이션의 특징을 살펴보겠습니다. 및 멀티 모듈:
멀티 애플리케이션 기능:
독립적인 구성 파일
독립적인 도메인 이름
멀티 모듈의 기능:
통합된 구성 파일
통합 도메인 name
그렇다면 실제로 여러 애플리케이션을 사용할지 여부를 어떻게 결정해야 할까요?
프론트와 백엔드를 분리하려면 예를 들어 백엔드 관리를 위해 별도의 도메인 이름이 필요하므로 여러 애플리케이션을 사용해야 합니다.
여러 애플리케이션의 구성은 완전히 다르므로 여러 애플리케이션을 사용하는 것이 더 편리합니다. 애플리케이션은 다른 구성 파일을 사용하세요
애플리케이션에는 더 많은 도메인 이름 구성이 필요하며 가격 비교가 번거롭습니다. 소규모 프로젝트의 경우 도메인 이름을 구분하지 않는 것이 좋습니다
공식 웹사이트(yii-advanced-app-2.0.12.tgz)에서 Yii2의 고급 애플리케이션 템플릿을 다운로드하세요. 다운로드하고 압축을 푼 후 advanced
디렉토리에 들어가서 다음을 실행하세요. advanced
目录,运行:
# Windows init.bat # Linux init
会在frontend
和backend
两个应用的web
目录生成入口文件index.php
。frontend
和backend
分别表示前台和后台应用,里面的目录结构是一样的:
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['foo'] = 'bar'; // ... 其他初始化代码 ... } }
3、在frontend/config/main.php
增加模块的申明:
'modules' => [ 'h5' => [ 'class' => 'frontend\modules\h5\Module', // ... 模块其他配置 ... ], ],
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('index'); } }
浏览器访问:http://localhost:8888/index.php?r=h5/site/index
即可访问。
还有一种方法也可以实现类似该URL路由的访问形式,例如r=test/site/index
。只需要在frontend/controllers
目录新建个子目录叫test
namespace frontend\controllers\test;
frontend
및 backend의 <code>web
을 엽니다. code> 디렉토리는 항목 파일 index.php
를 생성합니다. frontend
및 backend
는 각각 프런트엔드 및 백그라운드 애플리케이션을 나타냅니다. 내부 디렉터리 구조는 동일합니다. r=v1/site/index r=v2/site/index
rrreee브라우저를 열고 http://0.0을 입력합니다. 0.0:8888은 기본 홈 페이지에 액세스할 수 있습니다.
모델은 루트 디렉터리의common/models
에 배치하는 것이 좋습니다. 다중 모듈다중 모듈에 대해서는 http://www.yiichina.com/doc/g… 예: frontend
에서 새 h5
애플리케이션 만들기:
1. 관련 디렉터리 만들기rrreee2 콘텐츠 예:
rrreee3. frontend/config/main.php
에 모듈 선언 추가: rrreee4 modules/h5/controllers
에 새 컨트롤러 클래스 생성:
브라우저 액세스: http://localhost:8888/index.php?r=h5/site/index
에 액세스합니다.
r=test/site/index
와 같이 이 URL 경로와 유사한 액세스 양식을 구현하는 방법도 있습니다. frontend/controllers
디렉터리에 test
라는 새 하위 디렉터리를 만들고 여기에 컨트롤러를 넣은 다음 네임스페이스를 rrreee
로 변경하면 됩니다. 이는 API 버전 제어에 사용될 수 있습니다. 예:
원본 게시 위치:
http://www.cnblogs.com/52fhy/...🎜 🎜🎜관련 권장 사항: 🎜🎜🎜Yii2 구성의 기본 개념🎜 🎜🎜 🎜Yii2.0 실행 과정에 대한 자세한 설명🎜🎜🎜🎜Yii 프레임워크 소개🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜위 내용은 Yii 다중 애플리케이션 다중 모듈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!