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

 1 <?php
 2     use wechat\hello\hello;
 3     use phpWeChat\Area;
 4     use phpWeChat\CaChe;
 5     use phpWeChat\Config;
 6     use phpWeChat\Member;
 7     use phpWeChat\Module;
 8     use phpWeChat\MySql;
 9     use phpWeChat\Order;
10     use phpWeChat\Upload;
11 
12     !defined('IN_APP') && exit('Access Denied!');
13 
14     switch($action)
15     {
16         case 'index':
17             echo '這是自適應模塊的移動端前端控制器';
18             exit();
19             break;
20         default:
21             wealert('違法請求',false);
22             break;
23     }
24 ?>

index.php

 1 <?php
 2     //自適應模塊的PC前端控制器
 3     use wechat\hello\hello;
 4     use phpWeChat\Area;
 5     use phpWeChat\CaChe;
 6     use phpWeChat\Config;
 7     use phpWeChat\Member;
 8     use phpWeChat\Module;
 9     use phpWeChat\MySql;
10     use phpWeChat\Order;
11     use phpWeChat\Upload;
12 
13     !defined('IN_APP') && exit('Access Denied!');
14 
15     switch($action)
16     {
17         case 'index':
18             //從數據表讀取數據並賦給數組$data
19             //$data=Hello::dataList();
20             echo '這是自適應模塊的PC端前端控制器';
21             exit();
22             break;
23         case 'detail':
24             $data=Hello::dataGet($id); //$id 可以改成$_GET['id']
25             break;
26         case 'tougao':
27 
28             break;
29         case 'tougaosave':
30             //print_r($info);
31 
32             $op=Hello::dataInsert($info);
33 
34             if($op)
35             {
36                 echo '文章投稿成功,ID為'.$op;
37             }
38             else
39             {
40                 echo '文章投稿失敗';
41             }
42             exit();
43             break;
44         //以下 case 條件僅為 示例。您可以根據業務邏輯自由修改和拓展
45 
46         //case 'index':
47 
48             //在此寫 index.php?m=hello&a=index 時的邏輯
49 
50             //break;
51 
52         //case 'list':
53 
54             //在此寫 index.php?m=hello&a=list 時的邏輯
55 
56             //break;
57 
58         //以此類推...
59 
60         //case '...':
61 
62             //在此寫 index.php?m=hello&a=... 時的邏輯
63 
64             //break;
65 
66         default:
67             break;
68     }
69 ?>

 

3、查看效果

在谷歌瀏覽器里直接訪問http://www.example.com/index.php?m=hello&a=index,呈現如下圖:

在谷歌瀏覽器里模擬手機訪問,然后刷新,則呈現如下圖:

如預期所想,我們達到了自己的目的。

在上面的示例中,我們簡單的實現了一個自適應PC+手機的小型模塊,至於如何在分別的控制器中讀取視圖數據庫數據並展示給視圖,原理和操作方法跟前面幾講說的是一樣的。只是需要編寫2個控制器和2套視圖文件而已。

 

《10天學會phpWeChat》系列教程傳送門:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM