# Hello Wechat 项目实战
1、复制demo模块,更改项目目录名称
> 注意:模块命名规则为 模块类型_模块名称,模块类型为(we,wemini),如此项目是提供给微信公众号的,则项目命名为 we_hellowechat
2、修改模块下各文件命名空间,需要修改的文件为
```
/we_hellowechat/controller/WechatIndex.php
改为:namespace addons\we_hellowechat\controller
```
```
/we_hellowechat/controller/WechatAdmin.php
改为:namespace addons\we_hellowechat\controller
```
```
/we_hellowechat/controller/WechatMiniIndex.php
改为:namespace addons\we_hellowechat\controller
```
```
/we_hellowechat/controller/WechatMiniAdmin.php
改为:namespace addons\we_hellowechat\controller
```
```
/we_hellowechat/controller/WechatMiniAdmin.php
改为:namespace addons\we_hellowechat\controller
```
```
/we_hellowechat/Processor.php
改为:namespace addons\we_hellowechat
```
3、于 WechatIndex.php 中开发前台业务~~~
```
namespace addons\we_hellowechat\controller;
use addon\WechatIndexBasic;
class WechatIndex extends WechatIndexBasic
{
public function entry()
{
//全局变量$_WE 可在 业务控制器介绍->前台控制器中查看详细数据结构
global $_WE;
//TODO...业务逻辑
//渲染前台模板 默认前台模板为default
return $this->fetch($this->addon_template.'/wechat_index/entry',[
]);
}
//某个页面
public function helloWechat()
{
$name = '戴晨';
//渲染前台模板 默认前台模板为default,后端变量赋值于前端页面需要在fetch第二个参数中数组传递
return $this->fetch($this->addon_template.'/wechat_index/hello_wechat',[
'name'=>$name
]);
}
//某个api接口 无需oauth授权 请与config目录下config.php配置文件中做如下配置,屏蔽某路由进行oauth授权
/*
* return [
'white_oauth'=>[
'we_hellowechat-WechatIndex-apiGetUserInfo'
],
];
*/
public function apiGetWechatUserInfo()
{
// 对应原生 $_GET
$id = $this->request->get('id');
// 对应原生 $_POST
$id = $this->request->post('id');
// 对应原生 array_merage($_GET,$_POST,$_ ...建议用此方法)
$id = $this->request->param('id');
}
}
```
4、于 /we_hellowechat/view/defalut/wechat_index/hello_wechat.html 中开发前台业务。
资源文件位置:/public/static/addons/we_hellowechat/default
资源文件类型文件夹:/css /images /js ....
资源文件引入:
```
引入模块css
<link rel="stylesheet" href="{$module_static_path}/css/main.css">
```
```
引入模块js
<script src="{$module_static_path}/js/main.js"></script>
```
```
引入第三方库
<script src="{$module_static_path}/js/main.js"></script>
```
demo如下
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--引入模块css-->
<link rel="stylesheet" href="{$sys['module_static_path']}/main.css">
<!--引入第三方类css-->
<link rel="stylesheet" href="{$sys['static_extend_path']}/main.css">
<!--引入公共css-->
<link rel="stylesheet" href="{$sys['static_common_path']}/main.css">
</head>
<body>
<h1>{$name} - hello Wechat</h1>
<!--引入公共js类库-->
<script src="{$sys['static_common_path']}/jquery.min.js"></script>
<!--引入第三方类库-->
<script src="{$sys['static_extend_path']/layui/layui.js"></script>
<!--引入模块js-->
<script src="{$sys['module_static_path']}/main.js"></script>
</body>
</html>
```
5、模块初始化,找吴飞宁进行后台初始化,并对测试公众号进行模块授权,后面访问需携带acid=xx的参数 acid为公众号id
6、上传至github,生产环境gitpull
6、测试
路由规则 :{模块名(同模块目录)-WechatIndex(控制器)-entry(方法)}
http://host/addons/execute/we_hellowechat-WechatIndex-entry