一个ThinkPHP5商城完整后端

利用TP5实现一个完整的“三端分离”,服务端,客户端,CMS端。服务端用树莓派(LNMP),客户端用微信小程序开发,CMS用普通HTML。服务端可以完全适用于IOS端和Android端。

笔记

回顾TP5后端用到的一些思想。

ORM

TP5全面支持ORM模式,区别与传统编程模式。看网上对其的解释,越看越绕不如实际应用:就是区别与传统SQL语句,在TP5框架中每一个Model层对应同名数据表,在Model层中定义函数和框架所给的值,当调用Model时候是对数据库对应表的一次全部查询操作,然后对应相关的配置筛选相关的值。

其实也真的不怎么还表述,在断点调试就可以很好理解,如下动态图:

ORM模式下可以很好的屏蔽SQL注入。

AOP

这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

基类和子类

基类:可以理解为最基础的类。(一般用于储存最基础的公共类,公共函数。因为使用频繁,调用起来方便)
子类:可以理解为在最基础类上的一个使用第二频繁的类。

CORS

当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。(一般会发送一个为PUT的请求,后端服务器来判断是否允许跨域)

1
2
3
4
5
6
7
8
9
10
11
12
13
class CORS
{
public function appInit(&$params)
{
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Headers: token,Origin,X-Requested-With,');
header('Access-Control-Allow-Methods: POST,GET');
if(request()->isOptions())
{
exit();
}
}
}
数据库关系设计

一个好的数据库设计比较复杂,灵活使用一对多,多对多,多对一,关系设计。能意会,难以表达。

数据库设计交给专门的人比较好,太多经验性东西,会随着时间越来越有经验