Yii 框架学习--03 多应用多模块
2017-08-20 21:49
501 查看
本文以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[/code] 打开浏览器输入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
相关文章推荐
- Yii 框架学习--03 多应用多模块
- [我的PHP之旅] YII框架学习 03.连接数据库(使用ActiveRecord)
- 关于后盾网yii框架的学习小结(1)--yii模块的安装
- YII框架学习 第二天(2) gii 和 模块
- PHP Yii开源框架入门学习(四)添加新模块
- 关于后盾网yii框架的学习小结(5)--验证码的使用与规则的设置,为后台模块设置独立的布局
- 关于后盾网yii框架的学习小结(5)--验证码的使用与规则的设置,为后台模块设置独立的布局
- 关于后盾网yii框架的学习小结(1)--yii模块的安装
- PHP Yii开源框架入门学习(四)添加新模块
- 深度学习框架TensorFlow学习与应用(五)——TensorBoard结构与可视化
- 框架学习前基础加强 泛型高级,注解,反射(泛型&注解)应用案例,IOC,Servlet3.0,动态代理,类加载器
- 建立可扩展的silverlight 应用框架 step-6:整理导航模块“LeftNav”
- yii框架设计学习笔记(一)
- Yii学习笔记-应用结构
- Android个人学习笔记之ListView知识应用-仿IOS百度云条目点击显示菜单模块实现
- PHP反射(ReflectionClass、ReflectionMethod)在ThinkPHP框架的控制器调度模块中的应用
- 深度学习框架TensorFlow学习与应用(三)——使用交叉熵作为代价函数
- Windows 8 Directx开发学习笔记(一)应用基本框架
- 关于后盾网yii框架的学习小结(6)--数据库连接配置与模型定义与后台登陆验