tinywebdb-php-vue

Tinywebdb (php-vue)

TPV是一个数据库管理系统,默认支持 App Inventor 的 Tinywebdb,并以此得名。

下载页

一般会有四个下载选项

在新浪云SAE上部署

首次部署

  1. 新浪云(SAE)创建 php, 标准环境, 7.0, git 应用
  2. 前往左侧菜单应用->代码管理,创建版本,并选择上传代码包,将 Release 页面下载的 dist.zip 上传
  3. 选择上传代码包旁边的编辑代码(编辑界面有时候是弹窗,会被浏览器拦截,请注意放行)
  4. 根据生产环境的配置配置 config.php
  5. 前往你的app网址如 http://{app-id}.applinzi.com/#/manage/init ,设置后台密码
  6. 开始正常使用!(AI2中填写的网络微数据库地址是 http://{app-id}.applinzi.com

更新已有应用

只需要前往应用->代码管理,选择上传代码包,上传 Release 中的 dist.zip 文件即可

使用宝塔服务器面板

首次部署

  1. 安装php7.0插件(其他php7版本没有测试,安装完有问题建议回退到7.0)
  2. 安装mysql插件
  3. 在网站一栏中选择添加站点,输入域名或公网ip,选择php7.0,并创建mysql数据库
  4. 创建完毕记下数据库信息,或者稍后在数据库一栏中查询
  5. 下载 Release 页面的 dist.zip 或者 dist.tar.gz
  6. 点击站点列表中的根目录,前往文件管理页面,上传并解压dist包
  7. 根据生产环境的配置配置 config.php
  8. 如果是nginx环境
    • 双击文件列表中解压出来的.htaccess,复制文件内容
    • 然后回到站点列表,点击站点名(打开设置),找到“伪静态”一栏,前往上面的“Apache转Nginx”链接(或者这个)
    • 将转换完的 Nginx rewrite 保存到宝塔的伪静态设置
  9. 修改站点设置“默认文档”,将index.html移动到index.php上面,保存(按钮文字有可能是“添加”)
  10. 前往你的服务器公网ip或者绑定域名,设置后台密码
  11. 开始正常使用!(AI2中网络微数据库的地址直接填服务器ip即可)

更新已有站点

只需要前往网站->站点根目录,像首次部署一样上传并解压 Release 中的 dist 包即可

生产环境的配置

上线生产环境之前请确保负责提供配置的 config.php 已经被创建并设置

常量 必须? 默认值 备注
DEBUG_MODE false 调试模式,如果发生错误会附带错误信息在result
ACCESS_CONTROL_ALLOW_ORIGIN (未设置则不生效) 是否允许浏览器跨域/其策略,"*"即为允许所有
MANAGE_LOGIN_TIMEOUT 600 后台管理会话自动结束时长(秒)

其他设置:

样例参见 config.sample.php

插件

TPV支持使用插件,目前内置插件有:

如需调整插件启用情况,则需要自行构建TPV

从源码构建

  1. 下载源码
git clone https://github.com/ColinTree/tinywebdb-php-vue.git
cd tinywebdb-php-vue
git submodule update --init
npm i tar-to-zip -g
  1. 配置plugins.json,格式参照源码中的样例 plugins.sample.json
  2. 构建
npm run build

执行完之后你就可以看到 dist.tar.gzdist.zip 出现在你当前的文件夹中

API文档

Api.class.php 中定义的状态码

状态名 分类 状态码 http状态码 描述
STATUS_SUCCEED 全局 0 200 API执行成功,具体细节返参见返回值
STATUS_API_NOT_FOUND 全局 1 404 未能找到请求的API
STATUS_API_FAILED 全局 2 200 API在运行过程中出现错误
STATUS_INTERNAL_ERROR 全局 3 500 服务器内部错误
STATUS_UNAUTHORIZED 全局 4 401 请求未提供token或者token已失效
STATUS_PLUGIN_API_FAILED 插件 5 200 插件通用错误码
STATUS_SYSTEM_NOT_CONFIGURED 全局 6 200 系统尚未初始化(需要配置config.php)
STATUS_KEY_NOT_FOUNT 需要提供标签的地方 10 200 数据库中未能找到请求的标签
STATUS_KEY_RESERVED 需要提供标签的地方 11 200 请求了管理系统的保留标签
STATUS_UNACCEPTED_LIMIT 需要返回分页的地方 20 200 分页限制应该在1-100之间
STATUS_KEY_ALREADY_EXIST 需要添加标签的地方 30 200 标签已存在
STATUS_PASSWORD_TOO_SHORT 初始化 40 200 密码太短
STATUS_PASSWORD_INVALID 初始化 41 200 密码过于简单或者包含了不允许的字符
STATUS_SETTING_NOT_RECOGNISED 更新设置 50 200 服务器不支持指定的设置
STATUS_EXPORT_UNACCEPTED_TYPE 导出数据 60 200 服务器不支持指定的导出格式
STATUS_EXPORT_XLSX_UNSUPPORTED 导出数据(仅限xlsx) 61 200 服务器未安装xlsx相关的模块

后台管理

请求头 X-TPV-Manage-Token 大部分时候是必须的,是一串用于身份验证的token,只有token验证通过的操作才会被服务器执行

后台管理设置表

设置Id 设置名 接受的值
all_category 标签浏览页·分类列表 使用井号#分隔的文本