技术只是工具,一定要结合想法来选择技术(技术只是实现我们的想法)
抽象方法面对一个项目【先有想法,再去寻找工具,技术选型】
1.服务端:ThinkPHP 5[1] +MySQL 构建REST API
2.客户端:微信小程序,向服务端请求数据,完成自身行为逻辑
3.CMS管理,数据的增删改查,在api中看做一个特殊的客户端
以上就是三端分离:客户端,服务器,数据管理分离
核心规则
基于REST API规则,基于Token令牌管理权限
本身采用MVC架构,在服务端没有View层
AOP面向切面编程思想的实际应用,避免重复代码编写。对应tp5中的行为(Behavior)
ORM的方式与数据库交互(Object Relational Mapping)对象关系映射(tp5已经封装好)
MySQL数据表设计与数据冗余的合理利用
面向对象的思维构建前端代码(ES6 Class&Module)
ThinkPHP5 技术说明:
Web框架三大核心(路由,控制器,模型)路由定义api接口
验证器,读取器,缓存与全局异常处理
ORM:模型与关联模型(把数据库中的表看做一个对象,关联模型就是处理对象与对象之间的关系)
扩展:
SQL Alchemy框架(功能强大复杂),sequelize-nodejs下的ORM框架(SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。),微软的Entity Framework框架。
微信
前端技术微信小程序(扩展MVVM【vuejs】)
微信登录(在服务器端维护登录态)
微信支付(预订单,库存量检测【超卖问题】支付与回调通知[2]处理)
微信模板消息(小程序采用被动下发)
MySQL
数据库表设计(三范式)
数据冗余的合理利用(提高查询速度)
事务与锁在订单[3](库存量)检测中的应用
前置知识
php面向对象编程(封装,继承,多态)【多态性在php中体现弱】
Tp5基本知识(控制器和路由)
MySQL基础,熟悉sql语句
小程序常用的API
开始
web产品矩阵
网站,iOS,Android,微信【H5+公众号】,小程序
代码的容易维护很重要
前端已经变得和服务器一样需要处理大量的业务逻辑
依赖或者包管理【尽量不使用第三方包特别在thinphp中】
composer
npm(nodejs)
pip(Python)
开发工具:
phpstrom
Navicat
postman
创建项目
- 使用phpstrom创建一个新的项目在phpstudy或者xamp或者自定义一个环境下的环境目录,导入ThinkPHP5三种安装方式(http://thinkphp.cn下载[4],composer【命令:composer create-project topthink/think=5.0.* tp5 --prefer-dist】,git clone【https://github.com/top-think/think】)注意:使用ThinkPHP的命令创建目录和相关的控制器模型等命令【具体命令参考tp5手册】,phpstrom小技巧:设置命名空间在设置中找到
2.配置虚拟域名在Apache中配置vhost在本地找到host文件分别配置对应路径和ip,然后简化去除index.php
配置虚拟域名简化url
在Apache中配置
<VirtualHost *:80>
DocumentRoot "D:phpStudyWWWxiaochengxupublic"
ServerName z.cn
</VirtualHost>
注意下 在public目录下把重写文件在index.php后边加上一个问号
开启路由访问我们的项目,默认配置是开启的,开启route后不能使用其他访问模式。使用api最好开启强制使用路由【未完成,待续……】
参考
- ^手册 https://www.kancloud.cn/manual/thinkphp5/118006
- ^不好调试
- ^还是超卖 https://zhuanlan.zhihu.com/p/60418126
- ^tp5之后不支持下载了