Yii 框架学习--03 多应用多模块
本文以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/guide/2.0/structure-modules配置。示例:在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
转载于:https://www.cnblogs.com/52fhy/p/7401625.html
Yii 框架学习--03 多应用多模块相关推荐
- PHP开发框架之YII框架学习——碾压ThinkPHP不是梦
前 言 JRedu 程序猿是一种慵懒的生物!能少敲一行代码,绝对不会多敲一个字符!所以,越来越多的开发框架应运而生,在帮助我们完成功能的同时,极大程度上也帮我们节省了人力物力,而且也提高了系统的 ...
- Yii 框架学习--01 框架入门
Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...
- yii框架学习(一)yii框架介绍
一.什么是yii框架 Yii读做易,可以看做是Yes it is的缩写. Yii有两种中文含义,1.极致简单.2.不断演变. Yii是一个基于组件.用于开发大型Web应用的高性能PHP框架.Yii提供 ...
- yii框架学习(五)get、post请求如何接收请求参数
get请求接收参数 修改之前的actionIndex请求,在括号中添加$name参数既可以使用 public function actionIndex($name){echo 'Hello World ...
- layui框架学习(29:滑块模块)
Layui中的滑块模块slider支持用户通过移动滑块从一系列的值中进行选择,比起手输数值,使用滑块的视觉效果更直观.slider滑块模块的基本用法及效果如下所示: <div id=&quo ...
- yii框架学习笔记三
运行config的时候,如果cwebapplication定义有public的属性,比如basePath,则不用调用魔术函数__set application=>run processreque ...
- Python Django框架学习03:Django 安装
在安装 Django 前,系统需要已经安装了Python的开发环境.接下来我们来具体看下不同系统下Django的安装. Window 下安装 Django 如果你还未安装Python环境需要先下载Py ...
- 滴滴Booster移动APP质量优化框架 学习之旅 三
推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 滴滴Booster移动App质量优化框架-学习之旅 二对重复资源 ...
- 滴滴Booster移动APP质量优化框架 学习之旅 二
推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 续写滴滴Booster移动APP质量优化框架学习之旅,上篇文章分 ...
最新文章
- YSLOW法则中,为什么yahoo推荐用GET代替POST?
- .h头文件 .lib库文件 .dll动态链接库文件关系
- EasyUI 1.3.6 行号显示不全
- pandas将表中的字符串转成数值型
- iOS之深入解析weak关键字的底层原理
- 2021游戏市场风向标报告
- 回文质数(洛谷P1217题题解,Java语言描述)
- 系统学习机器学习之参数方法(三)
- 支持全系列阵列卡的专用服务器PE工具
- leetcode 904 滑动窗口
- 108-周跳探测之GF
- 苹果超薄笔记本MBA设计缺陷
- 微信可以用邮箱吗?邮箱无法分享到微信怎么办?微信邮箱从哪找呢
- daydream手柄
- 女人喜欢大男人还是小男人
- eclipse 显示中文或者英文
- html5 霸刀,基于Html5技术研发3D页游《霸刀》3月28日首测
- 机房收费系统合作版(四):一路走来感谢有你相伴
- 手撸架构,Redis面试41问
- 【C++】JOISC 2020 Day3原题+翻译+解析+代码