Yii 多应用多模块
本文以YII 2.0.7为例。
概述
首先看看多应用和多模块的特点:
多应用的特点:
- 独立配置文件
- 独立域名
多模块的特点:
- 统一配置文件
- 统一域名
那么,实际该怎么决定使用多应用还是多模块呢?
- 对于前后台分离,例如后台需要单独的域名进行管理这个应该用多应用
- 多应用的配置完全不一样,用多应用比较方便,配置文件使用不同的
- 多应用需要更多的域名配置,比价麻烦,对于小项目也不区分域名,多模块比较好
多应用
最简单的方法是下载官网的 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 多应用多模块相关推荐
- yii 2.0 代码阅读 小记
1.\yii\base\object 设置了get/set属性...使用getName()获取属性名..构造函数中使用config初始化属性 2.\yii\base\Component 继承自Obje ...
- Yii权限管理工具Srbac使用小结
一.关于Srbac Srbac是基于Yii 框架的 RBAC(基于角色的访问控制) 插件模块,用于帮助Yii开发人员更方便地进行权限控制,在实际应用过程中也比较方便. 二.安装配置Srbac 在Yii ...
- yii mysql gii_Yii 框架使用Gii生成代码操作示例
本文实例讲述了Yii 框架使用Gii生成代码操作.分享给大家供大家参考,具体如下: 开始 Gii Gii 是 Yii 中的一个模块. 可以通过配置应用的 modules 属性开启它.通常来讲在 con ...
- yii之gii的使用
gii gii是yii中的一个模块.可以通过配置应用yii\base\Application::modules属性开启它,gii脚手架可以帮助我们自动生成模型,控制器,crud的一些操作等,gii被设 ...
- yii学习笔记—gii 自动代码生成工具
其实 ajax 的一个很简单的实现原理就是建立一个隐藏的 iframe 然后通过这个 iframe 提交信息,再取 iframe 的返回信息,这样页面没有刷新,刷新的只是那个隐藏的 iframe Yi ...
- yii2框架_选择Yii 2框架的7个理由
yii2框架 Late last year, SitePoint published an article highlighting the top PHP frameworks. Tied for ...
- php yii2模块,模块(Modules)
模块 模块是独立的软件单元,由模型, 视图, 控制器和其他支持组件组成, 终端用户可以访问在应用主体中已安装的模块的控制器, 模块被当成小应用主体来看待,和应用主体不同的是, 模块不能单独部署,必须属 ...
- yii2 beta版 执行流程
yii2 beta版 执行流程 自动加载 1.composer的自动加载 //composer的加载实现了四种方式,可以看看require(__DIR__ . '/../../vendor/autol ...
- gii无法访问 yii2_YII2框架访问gii、debug页面404的错误解决方法
之前在介绍Yii框架的时候就说过 Yii 支持 gii 功能, gii 去自动生成 Web 站点常用功能的代码,也就是我们经常说的 CURD 操作,增删改查.使用 gii 生成代码也是非常的简单,Gi ...
最新文章
- 鲸鱼优化算法_Java 代码优化细节之比比谁更细
- CTFshow 文件包含 web87
- 42. Vue、React 等前端项目部署,刷新 404 问题解决方案
- node.js require 自动执行脚本 并生成html,利用node.js实现自动生成前端项目组件的方法详解...
- VS2017 下载离线MSDN文档
- c语言比赛积分程序,C语言积分赛.doc
- 部署可道云_可道云-快速搭建个人用云网盘
- 打游戏学习人工智能!不写代码|湾区人工智能
- linux三个命令模式切换,ubuntu16.04命令行模式和图形界面互相切换的两种解决办法,...
- 卵巢鸿蒙不全怎么检查,卵巢黄体功能不足怎么办 这三个处理方法要了解
- ES6——变量的解构赋值
- 常用html标签 —— 链接的颜色
- layui表格边框_layui怎么固定表格的表头
- 循环神经(LSTM)网络学习总结
- 人工神经网络可以做什么,人工神经网络有什么用
- 如何设置好看的form表单样式_HTML表格表单
- 2019最受欢迎的企业网站CMS建站系统排行榜
- Lagrange’s Mean Value Theorem - 拉格朗日中值定理
- html5 css3冷色调渐变色特效
- VxWorks 引导程序(BIOS/BootLoader/Bootrom)
热门文章
- python代码示例下载-python下xml解析库lxml最新版下载安装以及代码示例
- python贴吧发帖脚本-Python实现自动添加脚本头信息的示例代码
- python处理大量excel数据-使用python将大量数据导出到Excel中的小技巧分享
- python哪一版好用-Python最好用的编辑器是哪款?北京老男孩教育
- python对excel某一列去重-python中怎么对dataframe列去重
- python怎么安装numpy库-Python NumPy库安装使用笔记
- AprilTags二维码的检测与应用
- git在提交的时候报错:Your branch is up to date with ‘origin/master‘
- lua学习笔记之数据文件及序列化
- CPPUNIT的安装和编译