Uninote
Uninote
用户根目录
tmp
博客笔记

导语

  • 整体思路与编程思想 AOP 面向切面编程
  • 具体的编程知识与技巧 TP5 小程序 数据库

课程内容与产品技术点

  • ThinkPHP 5
    • 编写业务逻辑
    • 访问数据库
    • 向客户端提供数据
  • MySQL
    • 数据存储
    • 数据表设计
    • 与业务精密集合
  • 微信
    • 支付
    • 善于借鉴与模仿,学习微信接口设计
  • 小程序
    • 直接与用户交互
    • 体验很重要

课程流程

  • 服务端:
    • thinkPHP 5 + MySQL构建REST API
  • 客户端: 向服务端请求数据,完成自身行为逻辑
  • CMS: 向服务端请求数据,实现发货与发送微信消息

总结CMS的功能

两大类

  • 基础数据的curd操作,比如添加商品,删除商品类目。
  • 特殊操作,比如实现发送微信消息。

课程特点

  • 通用适合互联网公司良好结构的产品
  • 三端分离(客户端,服务端,数据管理分离)或 多端分离
  • 基于REST API
  • 基于Token令牌管理权限
  • 一套架构适配 iOS Android 小程序 单页面
  • 理解 MVC
  • AOP 面向切面编程思想在真实项目中的应用
  • 使用 ORM 的方式与数据库交互
  • MySQL 数据表设计与数据冗余的合理利用
  • 用面向对象的思维方式构建前端代码 (ES6 Class&Module

知识与技术

  • ThinkPHP 5
    • Web框架三大核心功能(路由 控制器 模型)
    • 验证器 读取器 缓存 全局异常处理
    • ORM:模型与关联模型
  • 微信
    • 微信小程序
    • 微信登录
    • 微信支付(预订单、支付库存量检查与回调通知处理)
    • 微信模板消息
  • MySQL
    • 数据库表设计
    • 数据冗余的合理应用
    • 事务与锁在订单(库存量)检查中的应用
  • 还有很多零碎的小知识 ...

前置知识

  • PHP与面向对象的相关知识 OOP
  • ThinkPHP 基本知识
  • 关系型数据库 MySQL 基本使用
  • 小程序常用 API
  • 小程序账号

产品矩阵

网站 iOS Android 微信 -> H5 -> 公众号 小程序

项目独立命名

  • 服务器程序:Zerg
  • 客户端小程序:Protoss
  • CMS:Terran

tp5 路由 - 「小知识」

eg: /application/route.php lilnk: 路由定义

<?php

use think\Route;

// Route::rule('test/r','test/index/route','GET|POST', ['https'=>true]);
Route::get('test/r/:id','test/index/route');

tp5 验证 Validate - 「小知识」

  • 独立验证
<?php

    // 独立验证

    $data = [
        'name' => 'vendor12345',
        'email' => 'vendorqq.com'
    ];

    $validate = new Validate([
        'name' => 'require|max:10',
        'email' => 'email'
    ]);

    $ret = $validate->batch()->check($data);
    dump($ret);
    dump($validate->getError());

  • 验证器

建立验证器模块:/test/validate/TestValidate

<?php
namespace app\test\validate;

use think\Validate;

class TestValidate extends Validate
{
    protected $rule = [
        'name' => 'require|max:10',
        'email' => 'email',
    ];
}

控制器使用方式:

/**
 * 验证器 示例
 * @link /test/index/tmp_checkout_best
 */
public function tmp_checkout_best()
{
    $data = [
        'name' => 'vendor12345',
        'email' => 'vendorqq.com'
    ];

    $validate = new TestValidate();

    $ret = $validate->batch()->check($data);
    dump($ret);
    dump($validate->getError());
}

什么是REST

Representational State Transfer : 表述性状态转移 一种风格 约束 设计理念

HTTP动词 (幂等性、资源安全性)

POST:创建 PUT:更新 GET:查询 DELETE:删除

状态码:404 400 200 201 202 401 403 500 错误码:自定义的错误ID号 统一描述错误:错误码、错误信息、当前URL

使用Token令牌来授权和验证身份

版本控制

测试环境和生产环境分开

关于异常分类

  • 由于用户行为导致的异常 通常不记录日志 需要向用户返回具体信息
  • 服务器自身异常(代码错误方面)需要记录日志 不向客户端返回具体原因

自定义错误码(分类)

错误码 描述错误
999 未知错误
1 通用错误
2 商品类错误
3 主题类错误
4 Banner类错误
5 类目类错误
6 用户类错误
8 订单类错误
10000 通用参数错误
10001 资源未找到
10002 未授权(令牌不合法)
10003 尝试非法操作(自己的令牌操作其他人数据)
10004 授权失败(第三方应用账号登录失败)
10005 授权失败(服务器缓存异常)
20000 请求商品不存在
30000 请求主题不存在
40000 Banner不存在
50000 类目不存在
60000 用不不存在
60001 用户地址不存在
80000 订单不存在
80001 订单中的商品不存在,可能已被删除
80002 订单还未支付,却尝试发货
80003 订单已支付
... ...

04

19-01-17 上海旬五

点赞(0) 阅读(199) 举报
目录
标题