Yii2中公共类实现微信端wap端和PC端分离的方法(Modules)
- 7745
- PHP
- 14
- super_dodo
- 2016/03/10
原本夜已经深了,一鼓作气再承接上文把Yii2中公共类实现微信端wap端和PC端分离的方法(Modules)的代码公布出来。关于模块化的好处就不多言了,逻辑清晰代码页简洁,此外还很模块化。我也是先前用目录形势,现在改成模块化Module。也就是吧微信端wap端以及后台等独立成模块进行开发和维护。
独立成模块需要在配置文件中进行配置。示例代码如下:
'modules' => [ 'wx' => [ 'class' => 'app\modules\wx\Module', 'layout'=>'wx', 'defaultRoute'=>'site', ], 'wap' => [ 'class' => 'app\modules\srbac\Module', 'layout'=>'wap', 'defaultRoute'=>'site', ], 'admin' => [ 'class' => 'app\modules\admin\Module', 'layout'=>'admin', 'defaultRoute'=>'site', ], ],
此处的重点是进行三个版本的分类,直接上代码VController
<?php //DoDoBook V2016 namespace app\components; use Yii; use app\extensions\common\MobileDetect; //检测PC--手机--微信浏览器 //PC端 微信扫描支付+支付宝支付--手机号登陆(1000px) //WAP端 微信扫码支付+支付宝支付--手机号登陆(320*) //WX端 微信直接JSAPI支付--微信直接授权登陆(320*) class VController extends BaseController{ //控制器之前先判断用户的浏览器 public function beforeAction($action) { if(Yii::$app->params['isLocalEnvironment'] == 'YES'){ return true; } // return true; $wxWapMod = Yii::$app->controller->module->id; //当前module $wxWapCon = Yii::$app->controller->id; //当前控制器 $wxWapAct = Yii::$app->controller->action->id; //当前Action if($wxWapAct == 'error'){ return true; } $realWxWapPcUrl = 'http://'.$_SERVER['HTTP_HOST'].'/'; $detect = new MobileDetect(); if($detect->isMobile() && $detect->isWeixin() ) { //是微信浏览器 if($wxWapMod == 'wx'){ return true; } $realWxWapPcUrl .= 'wx/'.$wxWapCon.'/'.$wxWapAct; }else if($detect->isMobile()){ //是手机浏览器 if($wxWapMod == 'wx'){ return true; } $realWxWapPcUrl .= 'wx/'.$wxWapCon.'/'.$wxWapAct; }else{ //PC端浏览器 if($wxWapMod == 'dodobook'){ return true; } $realWxWapPcUrl .= $wxWapCon.'/'.$wxWapAct; } if($_SERVER['QUERY_STRING']){ $realWxWapPcUrl .= '?'.$_SERVER['QUERY_STRING']; } //有查询字符串 $this->redirect($realWxWapPcUrl); //跳转 } }
这样是不是清爽简单很多。
链接上一篇: Yii2中继承一个公共类实现微信端wap端和PC端分离的方法
一个生命的存在的美好,来源于另一个生命给予你的意义。《触不可及》
- 解决:无法安装 64 位版本的 Office,因为在您的 PC 上找到了以下 32 位程序
- PHP header utf8 插入header(“Content-type:text/html; charset=utf-8”);
- POST 和GET传输的最大容量分别是多少?
- PHP删除字符串中的所有空格
- 服务器apahce配置vhosts实现多站点的方法
- Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
- 29 张 PPT 告诉你移动互联网是如何吃掉整个世界的
- PHP数组操作–获取数组最后一个值的方法(5种)
- PostgreSQL学习手册之–事物隔离
- [转]每天一个linux命令(7):mv命令
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例