Yii 多应用多模块
本文以YII 2.0.7为例,给大家分享了关于Yii多应用多模块,有需要的朋友可以参考一下
概述
首先看看多应用和多模块的特点:
多应用的特点:
独立配置文件
独立域名
多模块的特点:
统一配置文件
统一域名
那么,实际该怎么决定使用多应用还是多模块呢?
对于前后台分离,例如后台需要单独的域名进行管理这个应该用多应用
多应用的配置完全不一样,用多应用比较方便,配置文件使用不同的
多应用需要更多的域名配置,比价麻烦,对于小项目也不区分域名,多模块比较好
多应用
最简单的方法是下载官网的 Yii2的高级应用程序模板:yii-advanced-app-2.0.12.tgz。下载下来解压后,进入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;
就可以了。这种可以用于API版本控制,例如:
r=v1/site/index r=v2/site/index
原载于:http://www.cnblogs.com/52fhy/...
相关推荐:
以上是Yii 多应用多模块 的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

从主屏幕中删除了重要内容并试图将其取回?您可以通过多种方式将应用程序图标放回屏幕。我们已经讨论了您可以遵循的所有方法,并将应用程序图标放回主屏幕如何在iPhone中撤消从主屏幕中删除正如我们之前提到的,有几种方法可以在iPhone上恢复此更改。方法1–替换应用程序库中的应用程序图标您可以直接从应用程序库将应用程序图标放置在主屏幕上。第1步–横向滑动以查找应用程序库中的所有应用程序。步骤2–找到您之前删除的应用程序图标。步骤3–只需将应用程序图标从主库拖动到主屏幕上的正确位置即可。这是将应用程序图

PHP中箭头符号的作用及实践应用在PHP中,箭头符号(->)通常用于访问对象的属性和方法。对象是PHP中面向对象编程(OOP)的基本概念之一,在实际开发中,箭头符号在操作对象时发挥着重要作用。本文将介绍箭头符号的作用以及实践应用,并提供具体的代码示例来帮助读者更好地理解。一、箭头符号的作用访问对象的属性箭头符号可以用来访问对象的属性。当我们实例化一个对

Linuxtee命令是一个非常有用的命令行工具,它可以在不影响已有输出的情况下,将输出写入文件或者将输出送往另一个命令。在本文中,我们将深入探索Linuxtee命令的各种应用场景,从入门到精通。1.基本用法首先,我们来看一下tee命令的基本用法。tee命令的语法如下:tee[OPTION]...[FILE]...该命令会从标准输入读取数据,并将数据

Go语言是一种由Google开发的开源编程语言,于2007年首次发布。它被设计成一种简单易学、高效、并发性强的语言,受到越来越多开发者的青睐。本文将探索Go语言的优势,并介绍一些适合Go语言的应用场景,同时给出具体的代码示例。优势并发性强:Go语言内置支持轻量级线程——goroutine,能够很容易地实现并发编程。通过使用go关键字就可以启动goroutin

Linux在云计算领域的广泛应用随着云计算技术的不断发展和普及,Linux作为一种开源操作系统在云计算领域中发挥着重要作用。由于其稳定性、安全性和灵活性,Linux系统被广泛应用于各种云计算平台和服务中,为云计算技术的发展提供了坚实的基础。本文将介绍Linux在云计算领域的广泛应用,并给出具体的代码示例。一、Linux在云计算平台中的应用虚拟化技术虚拟化技术

MySQL时间戳是一个十分重要的数据类型,它可以存储日期、时间或者日期加时间。在实际的开发过程中,合理地使用时间戳可以提高数据库操作的效率,并且方便进行时间相关的查询和计算。本文将从MySQL时间戳的功能、特性和应用场景等方面展开探讨,并结合具体的代码示例来讲解。一、MySQL时间戳的功能和特性MySQL中有两种类型的时间戳,一种是TIMESTAMP

明确答案:GoGet是一个命令行工具,用于管理Go模块及其依赖项。详细描述:GoGet可用于获取Go模块,语法为:goget[-u]。可以指定特定模块版本:goget@。使用goget-u更新已安装模块。通过gomodtidy删除不再使用的模块。
