10天学会phpWeChat——第七天:创建一个自适应PC网站+H5移动端的模块
本教程基于phpWeChat核心框架1.1.0+版本。下载地址:http://s.phpwechat.com/app_38026ed22fc1a91d92b5d2ef93540f20
通过前面六讲的系列教程,我们完成了一个包含后台的文章管理模块。但,phpWeChat的初衷并不仅限于此,帮您迅速创建一个PC网站+微信公共号才是满足时代需求的模块。
今天,我们开始《10天学会phpWeChat》的第七讲:创建一个自适应PC网站+H5移动端的模块。
还以我们一开始创建的hello world模块为例。
1、进入模块管理,进行模块配置,我们勾选:这是一个兼具PC+公众号的模块(如果选中此项,程序将自动调用2套视图和2个控制器进行Pc和微信端的切换)选项,如图所示:

在phpWeChat1.1.0+版本中,我们增加了这个选项,一旦勾选,系统将自动根据用户所处的浏览环境(PC还是手机)来自动调用不同的前端控制器和视图文件,从而实现同一模块、同一URL在不同操作环境下的不同视图展示。
2、编辑H5和PC的控制器和视图文件
在phpWeChat1.1.0+版本的模块目录里,我们定义了h5_index.php为自适应模块的移动端前端控制器,index.php为自适应模块的PC端前端控制器;定义了template/h5_default/为自适应模块的移动前端视图目录,template/default/为自适应模块的PC端前端视图目录。
如果,一个模块不是自适应模块(即没有勾选[这是一个兼具PC+公众号的模块(如果选中此项,程序将自动调用2套视图和2个控制器进行Pc和微信端的切换)]选项),那么h5_index和h5_default 目录则是无效目录,实际开发中不用顾及。


我们分别编辑h5_index.php和index.php
h5_index.php
<?php
use wechat\hello\hello;
use phpWeChat\Area;
use phpWeChat\CaChe;
use phpWeChat\Config;
use phpWeChat\Member;
use phpWeChat\Module;
use phpWeChat\MySql;
use phpWeChat\Order;
use phpWeChat\Upload; !defined('IN_APP') && exit('Access Denied!'); switch($action)
{
case 'index':
echo '这是自适应模块的移动端前端控制器';
exit();
break;
default:
wealert('违法请求',false);
break;
}
?>
index.php
<?php
//自适应模块的PC前端控制器
use wechat\hello\hello;
use phpWeChat\Area;
use phpWeChat\CaChe;
use phpWeChat\Config;
use phpWeChat\Member;
use phpWeChat\Module;
use phpWeChat\MySql;
use phpWeChat\Order;
use phpWeChat\Upload; !defined('IN_APP') && exit('Access Denied!'); switch($action)
{
case 'index':
//从数据表读取数据并赋给数组$data
//$data=Hello::dataList();
echo '这是自适应模块的PC端前端控制器';
exit();
break;
case 'detail':
$data=Hello::dataGet($id); //$id 可以改成$_GET['id']
break;
case 'tougao': break;
case 'tougaosave':
//print_r($info); $op=Hello::dataInsert($info); if($op)
{
echo '文章投稿成功,ID为'.$op;
}
else
{
echo '文章投稿失败';
}
exit();
break;
//以下 case 条件仅为 示例。您可以根据业务逻辑自由修改和拓展 //case 'index': //在此写 index.php?m=hello&a=index 时的逻辑 //break; //case 'list': //在此写 index.php?m=hello&a=list 时的逻辑 //break; //以此类推... //case '...': //在此写 index.php?m=hello&a=... 时的逻辑 //break; default:
break;
}
?>
3、查看效果
在谷歌浏览器里直接访问http://www.example.com/index.php?m=hello&a=index,呈现如下图:

在谷歌浏览器里模拟手机访问,然后刷新,则呈现如下图:

如预期所想,我们达到了自己的目的。
在上面的示例中,我们简单的实现了一个自适应PC+手机的小型模块,至于如何在分别的控制器中读取视图数据库数据并展示给视图,原理和操作方法跟前面几讲说的是一样的。只是需要编写2个控制器和2套视图文件而已。
《10天学会phpWeChat》系列教程传送门:
10天学会phpWeChat——第七天:创建一个自适应PC网站+H5移动端的模块的更多相关文章
- 10天学会phpWeChat——第六天:实现新闻的后台管理
通过前面五讲的系列教程,我们完成了一个简单模块的前端发布.列表展示.详情展示.实际生产环境中,所有前台的数据都会有对应的后台操作进行统筹管理.我们称之为后台管理系统. 今天,我们开始<10天学会 ...
- 10天学会phpWeChat——第五天:实现新闻投稿功能
在前几讲里,我们逐渐实现了自己小模块的新闻列表展示.新闻详情展示功能,现在您已经初步有能力开发一个phpWeChat小模块了,本文将在已开发的hello world模块基础上,增加一个新的功能--新闻 ...
- 10天学会phpWeChat——第四天:大U函数U()的使用
在第三天,我们创建了一个"增强版"的文章模块,实现了数据从数据库到视图端展示的流程.但是我们仅仅是实现了数据列表的展示,对于文章详情等页面跳转并未涉及. 本文重点讲解phpWeCh ...
- 10天学会phpWeChat——第三天:从数据库读取数据到视图
在第二天,我们创建了我们的第一个phpWeChat功能模块,但是比较简单.实际生产环境中,我们不可能有如此简单的需求.更多的情况是数据存储在MySql数据库中,我们开发功能模块的作用就是将这些数据从M ...
- 10天学会phpWeChat——第二天:hello world!我的第一个功能模块
今天我们开始进入<10天学会phpWeChat>系列教程的第二天:创建我的第一个hello world! 功能模块. 1.登录后台,进入 系统设置--自定义模块,如图: 自定义模块参数说明 ...
- 10天学会phpWeChat——第一天:核心框架的目录结构
phpWeCaht是一款优秀的PC网站+微信公共号开发框架. 本博客系列将图文结合,详细介绍phpWeChat 的使用方法,今天进入phpWeChat系列教程之<10天学会phpWeChat&g ...
- 10天学会phpWeChat——第八天:Form类,丰富表单提交的字段类型
通过前面七讲的系列教程,我们完成了一个包含后台并自适应PC+h5移动端的文章管理模块. 在实际的生产环境中,文章投稿.商品上传等操作并不会简单局限于一个text和textarea组成的表单.在实际中, ...
- 10天学会phpWeChat——第九天:数据库增、删、改、查(CRUD)操作
数据库的操作(CRUD)是一个现代化计算机软件的核心,尤其针对web应用软件.虽然在前面的几讲里,我们针对数据库操作大致有了一些了解,但今天我们需要再次强化下. 除了新瓶装老酒,我们今天还引入一个新的 ...
- 10天学会phpWeChat——第十天:phpWeChat的会员注册、登录以及微信网页开发
通过前面的系列教程,我们系统的讲解了phpWeChat从视图端.控制器端到模型端的操作流程:熟悉了phpWeChat的目录结构:掌握了视图端模板如何创建一个丰富的表单和模型端如何操作数据库.这一切都是 ...
随机推荐
- Longest Substring Without Repeating Characters(Difficulty: Medium)
题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...
- Uncaught ReferenceError: XXX is not defined
Uncaught ReferenceError: XXX is not defined 这个问题困扰我很久,虽然找到了解决方法,但是还不是很明白. 如下所示:是报错的代码. 如果把它改成下面的形式就可 ...
- STL库中的正态分布函数
在设计抽奖一类程序中,有时会需要一种概率“有较大可能获得一个普通结果,有较小可能获得一个糟糕或极好的结果”,这就可以用正态分布函数来获得这样一个结果. STL中已经提供了一系列随机分布的函数,包括正态 ...
- C++调用V8与JS交互
C++访问JS函数 C++部分: /** * COMPILE foo.js AT THE FIRST COMMAND PROMPT TO RUN foo.js */ #include <v8.h ...
- label标签
- oracle xmltype导入并解析Excel数据--前言
通常,很多的时候,我们需要导入Excel数据到系统中,但是Excel数据需要我们去各种校验,比如身份证校验,手机号码校验等等. 校验失败的数据,提供Excel导出错误原因,提示给用户. 如此,如果校验 ...
- Maven构件解析(转)
文章转自http://gavinwind2000.iteye.com/blog/2290652 谢谢博主的总结! 在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件. Maven在 ...
- 【LeetCode OJ】Construct Binary Tree from Preorder and Inorder Traversal
Problem Link: https://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-trave ...
- 软件测试第二次作业——Fault,Failure,Error辨析与设计测试用例
Fault 静态错误 ,Failure 外部错误 ,Error 内部错误 问题答案 第一题 1.1 当数组x内的元素≥2时,该循环不会检测到x[0]这个元素. 1.2 test: x=[2, 3, 2 ...
- Maven项目pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...